本篇博客是博主在学习 Git 过程中,总结和记录常用的命令,只适用于对 Git 已经掌握的人,用于查询常用的 Git 命令。 如果你想学习 Git 入门教程,不建议阅读本篇博客,请跳转到 廖雪峰的Git教程,这里会有更好的 Git 入门教程。
Git命令总结
工作区和暂存区
当前目录和当前目录下的操作就是工作区
git add 就是把文件添加进暂存区
管理版本库
初始化仓库,添加文件到暂存区,并提交到仓库
git init
把当前目录变为可以管理的仓库,初始化一个 Git 仓库
在当前目录编写一个readme.txt文件
git add readme.txt
add 命令告诉 Git,把文件添加到仓库
git commit -m "xxx"
commit 命令,把文件提交到仓库
git status
显示当前仓库的状态,是否已经修改,是否需要 add 或 commit
git diff
查看被修改的内容
撤销修改
丢弃本次错误的操作,重回之前正确的场景
git checkout -- readme.txt
.丢弃工作区的修改,回到最近一次 git commit 或 git add 时的状态
git reset HEAD readme.txt
把暂存区的修改撤销掉(unstage),重新放回工作区
git rm readme.txt
删除文件
版本回退
git log
查看提交日志
git log -pretty=online
显示一行,更整洁的显示git提交日志
HEAD
表示当前版本 ,HEAD^
表示上一个版本,HEAD^^
上上一个版本 ,HEAD~5
向前第五个版本
git reset --hard HEAD^
回退到上一个版本
git reset --hard xxxxxx
回退到指定版本,xxxxxx 代表回退指定版本的版本号前几位
git reflog
查看命令日志
远程仓库
$ ssh-keygen -t rsa -C "youremail@example.com"
创建SSH key
git remote add origin git@github.com:hnwx7880/learngit.git
关联远程仓库
git push -u origin master
关联后第一次推送master分支的所有内容
git push origin master
推送最新内容
git clone git@github.com:hnwx7880/learngit.git
克隆一个仓库
分支管理
git branch
查看分支,当前分支前会标记一个「*」
git branch <name>
创建分支
git checkout <name>
切换分支
git checkout -b <name>
创建+切换分支
git merge <name>
合并某分支到当前分支
git branch -d <name>
删除分支
git log --graph
命令可以看到分支合并图。
场景
管理修改
场景:「修改文件 readme.txt」 >> 「执行 git add 」>> 「第二次修改文件 readme.txt」 >> 「执行git commit 」
结果:这里只有第一次修改的内容被 commit 到仓库,第二次没有被提交
原因:第二次修改文件没有执行 git add
结论:每次修改过的文件如果没有 add 到暂存区,就不会被加入到commit中。
撤销修改
场景1:当你错误执行一个文件以后,想要丢弃本次工作区的修改时,应该执行命令git checkout -- readme.txt
.
场景2:当你改乱某个文件,并且add到暂存区时,想要放弃本次工作区的修改时,第一步:应该执行命令git reset HEAD readme.txt
,第二步:应该执行命令git checkout -- readme.txt
.
场景3:如果提交了本次操作,应该执行版本回退,命令:git rest --hard HEAD^
前提是没有push到远程仓库.
删除文件
场景:删除一个文件test.txt ,执行git status 看到文件被删除的提示
如果删除文件,执行命令git rm test.txt
,然后执行 commit ,完成本次操作
如果后悔删除刚才的文件,可以执行命令git checkout -- test.txt
,恢复最新版本
git checkout
其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。