常用命令
git init
命令把这个目录变成Git可以管理的仓库
git add
告诉Git,把文件添加到仓库
git commit
告诉Git,把文件提交到仓库
git status
命令看看结果
git diff
顾名思义就是查看difference
git log
命令显示从最近到最远的提交日志
git reset
命令回退到上一个版本
git checkout -- file
可以丢弃工作区的修改(未添加到暂存区)
git reset HEAD file
可以把暂存区的修改撤销掉(unstage),重新放回工作区(然后再执行上一个命令)
git rm
用于删除一个文件
git remote add origin git@server-name:path/repo-name.git
要关联一个远程库,使用命令
git push -u origin master
第一次推送master分支的所有内容
分支管理
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
命令可以看到分支合并图:git log --graph
--no-ff
参数就可以用普通模式合并,合并后的历史有分支:git merge --no-ff -m "merge with no-ff" dev
强行删除 :git branch -D feature-vulcan
暂存
git stash
保存当前的工作进度。会分别对暂存区和工作区的状态进行保存
git stash save "message..."
这条命令实际上是第一条git stash
命令的完整版
git stash list
显示进度列表。此命令显然暗示了git stash 可以多次保存工作进度,并用在恢复时候进行选择
git stash pop [--index] [<stash>]
如果不使用任何参数,会恢复最新保存的工作进度,并将恢复的工作进度从存储的工作进度列表中清除。
如果提供参数(来自git stash list
显示的列表),则从该<stash>
中恢复。恢复完毕也将从进度列表中删除<stash>
。
选项--index 除了恢复工作区的文件外,还尝试恢复暂存区。
git stash apply [--index] [<stash>]
除了不删除恢复的进度之外,其余和git stash pop
命令一样
git stash clear
删除所有存储的进度
多人协作
查看远程库信息,使用
git remote -v
;本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支,使用
git push origin branch-name
,如果推送失败,先用git pull
抓取远程的新提交;在本地创建和远程分支对应的分支,使用
git checkout -b branch-name origin/branch-name
,本地和远程分支的名称最好一致;建立本地分支和远程分支的关联,使用
git branch --set-upstream branch-name origin/branch-name
;从远程抓取分支,使用
git pull
,如果有冲突,要先处理冲突。
标签
命令
git tag <name>
用于新建一个标签,默认为HEAD
,也可以指定一个commit id;git tag -a <tagname> -m "blablabla..."
可以指定标签信息;git tag -s <tagname> -m "blablabla..."
可以用PGP签名标签;命令
git tag
可以查看所有标签。
忽略特殊文件
忽略某些文件时,需要编写
.gitignore
;.gitignore
文件本身要放到版本库里,并且可以对.gitignore
做版本管理
参考文献: