Git作为一个极其强大的版本控制工具,其优势不言而喻,应该成为每个程序员的标配。如果你还在使用Svn,强烈建议体验一下Git,你一定会爱不释手的。推荐一个不错的Git入门教程,廖雪峰的官方网站。这里仅记录一些常见Git命令,以供查阅。
创建版本库
git init
在当前目录创建版本库(repository),会自动在根目录生成.git
文件夹
git clone https://github.com/lulululbj/JavaDesignPatterns.git
克隆版本库地址
本地修改
git add readme.md
将文件添加到版本库,仅仅只是添加到暂存区
git commit -m "commit message"
将add到暂存区的文件提交到版本库,可多次add,一次提交。-m
后的参数为本次提交的备注,这是一个应该养成的好习惯。
git add .
orgit add -A
添加本地所有修改
git status
查看本地仓库当前状态,修改了哪些文件,哪些文件等待commit等等。
git diff
查看具体修改内容,后面可以添加文件名查看具体文件修改内容。当然,如果你刚刚commit了,这个命令就查看不到任何东西。
提交管理
git log
查看提交历史
git log --pretty=oneline
如果你觉得git log
命令显示的内容过于冗余,这个命令仅仅显示commit_id和提交时的备注
git reset --hard HEAD^
回退到上个版本,HEAD^^
,上上个版本,HEAD~10
,上10个版本
git reset --hard commit_id
根据commit_id
恢复到指定版本
git reflog
记录你每次对版本库的操作,并显示每一次的commit_id
git diff HEAD -- readme.md
查看文件在工作区和当前版本库里面最新版本的区别
git checkout -- readme.md
撤销工作区的修改,恢复到最近一次git commit
或者git add
的状态
git reset HEAD readme.md
撤销暂存区的修改
git rm readme.md
删除文件
分支管理
git branch work
创建work分支
git checkout work
切换到work分支
git checkout -b work
创建并切换到work分支,相当于上面两条命令的合并
git branch
查看所有分支,当前分支前面会标注*
git merge work
合并work分支到当前分支
git branch -d work
删除work分支
git log --graph
查看分支合并记录
git stash
将当前工作区储存起来
git stash list
查看储存的工作区
git stash apply
恢复工作区域但不删除stash中内容
git stash pop
恢复工作区域并删除stash中内容
git stash apply stash@{0}
恢复指定的stash
标签管理
git tag
查看标签
git show v1.0
查看标签信息
git tag v1.0
在当前分支的最新一次commit上打标签
git tag -d v1.0
本地删除标签
git push origin v1.0
推送某个标签到远程
git push origin --tags
推送全部尚未推送到远程的标签
git push origin :refs/tags/v1.0
删除远程标签
远程仓库
git remote add origin git地址
关联本地仓库和远程仓库
git push -u origin master
将本地库的所有内容推送到远程库。第一次提交时需要加上-u
,将本地master分支与远程库origin分支关联起来,以后直接git push origin master
即可
git remote -v
查看远程库详细信息
有任何疑问,欢迎加群讨论:261386924