前言:Git竟然是Linus花了仅仅两周时间用C开发出来的,膜拜啊!
1. Git常用命令:
1). 设置用户名:
git config --global user.name "用户名"
2). 设置用户邮箱:
git config --global user.email "用户邮箱"
.
--
4). 初始化一个新的Git仓库
a.创建文件夹;
b.在文件中初始化git(创建git仓库)
git init
5). 向仓库添加、修改文件:
git status : 查看当前文件状况
git diff: 当文件修改后,查看修改内容
git add 文件名: 将文件从工作区域提交到暂存区域
git commit -m "描述" 将文件从暂存区域提交到当前分支
6). 撤销修改
git checkout
这里有两种情况:a.文件修改后还没放入暂存区,现在撤销修改就回到和版本库一模一样的状态;
b.文件已经添加到暂存区后,又做了修改,撤销修改就会回到添加到暂存区后的状态
git reset HEAD fileName: 把暂存区的修改撤销掉,重新放回工作区
7). 删除文件:
a.确实要删除文件:
git rm 文件名
git commit -m "描述"
b.文件删错了:
git checkout
8). 查看提交log
git log [
git reflog : 查看命令历史,以便确定要回到未来的哪个版本
.
--
10). 从远程仓库拉代码:
git clone 仓库地址
11). 提交到git远程仓库
git push
12). 远程项目每次push都需要输入用户名和密码可以如下解决:
vim .git/config
将[remote "origin"]
url="htts://github.com/用户名/仓库名.git
修改为
url="https://用户名:密码@github.com/用户名/仓库名.git"
13). 分支管理
git checkout -b 分支名: 创建并切换到该分支;
相当于: git branch 分支名: 创建分支
git checkout 分支名: 切换分支
git branch :列出所有分支,当前分支前面会标一个*号
git merge 分支名: 合并指定分支到当前分支
git branch -d 分支名:删除指定分支
git merge --no-ff -m "描述" 分支名 : --no-ff表示禁用Fast forward,合并后的历史有分支,
能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并
用带参数的git log也可以看到分支的合并情况:
git log --graph --pretty=oneline --abbrev-commit
git log --graph : 该命令可以看到分支合并图
14). Bug分支:
git stash: 当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash list: 查看
恢复:
a. git stash appply :恢复后,stash内容不删除
git stash drop:删除
b. git stash pop: 恢复的同时把stash内容也删除;
15). Feature分支:
分支在未merge之前强行删除:
git branch -D 分支名;
16). 多人协作:
当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,
并且远程仓库的默认名称是origin;本地新建的分支如果不推送到远程,对其他人就是不可见的
<推送分支>
git remote [-v] :查看远程库信息
git push origin <branchName>: 推送分支到远程库对应的分支上
哪些分支需要推送,哪些不需要呢?
master分支是主分支,因此要时刻与远程同步;
dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
<抓取分支>
从远程库clone时,默认情况下只能看到本地的master分支,要在dev分支上开发,就必须创建远程origin的dev分支到本地:
git checkout -b branchName origin/branchName
<合并冲突>
git pull把最新的提交从origin/dev抓下来,在本地合并,解决冲突,再推送:
git branch --set-upstream branchName origin/branchName :建立本地分支和远程分支的关联
17). 标签管理:
创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除
git tag <nam> [commit_id]: 默认标签是打在最新提交的commit上,
git tag : 查看所有标签
git show <tagname>: 查看标签信息
git tag -a <tagname> -m "des" commit_id: 创建带有说明的标签,用-a指定标签名,-m指定说明文字
git tag -d <tagname>: 删除标签
git push origin <tagname>: 推送某个标签到远程
git push origin --tags: 一次性推送全部尚未推送到远程的本地标签
如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:
先从本地删除 : git tag -d <tagName>:
然后,从远程删除: git push origin :refs/tags/<tagName>
2. github建立个人网站:
1. 访问地址: https://用户名.github.io
2. 搭建步骤:
1).创建个人站点:
新建仓库:创库名必须是: 用户名.github.io
2). 在仓库下新建index.html文件即可;
3. 学习Git时用到的Linux命令:
rm :移除文件
rm -rf 目录名字:
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
mkdir:创建文件夹;
rmdir:删除文件夹
pwd: 显示当前目录
ls -ah : 显示当前文件夹中所有文件,包括隐藏文件
touch fileName: 创建文件
cat fileName:查看文件内容
vim fileName: 编辑文件