最近在学习git如何使用,下面有一个非常详细的git教程,可以学习,自己总结了一下命令集合。
工作区与版本库
命令集合
命令 | 功能 | 补充说明 |
git init | 初始化Git仓库 | |
git add <file> | 添加文件到仓库 | 可反复多次使用,添加多个文件 |
git commit -m “explain" | 把文件提交到仓库 | 添加文件到Git仓库需要add和commit两步 |
git status | 获取工作区状态 | 告诉你有文件被修改过 |
git diff | 查看修改内容 | |
git log | 查看提交记录 | |
git reflog | 查看命令历史 | |
git reset --hard commit_id | 版本回退 | |
git checkout -- file | 改乱了工作区,需要撤销修改 | |
git reset HEAD file
git checkout -- file
| 添加到暂存区,需要撤销修改 | |
it reset --hard commit_id
版本回退即可
| 提交版本库,没提交远程库,需要撤销修改 | |
git rm file
git commit -m “explain"
| 删除文件 | |
git checkout -- file | 恢复 | 用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原” |
git remote add origin git@server-name:path/repo-name.git | 关联一个远程库 | |
git push -u origin master | 第一次推送master分支 | |
git push origin master | 本地提交 | |
git clone | 克隆一个仓库到本地 | |
git branch | 查看分支 | |
git branch <name> | 创建分支 | |
git checkout <name> | 切换分支 | |
git checkout -b <name> | 创建+切换分支 | |
git merge <name> | 合并某分支到本地分支 | |
git branch -d <name> | 删除分支 | |
git log -- graph | 查看分支合并图 | |
git merge --no-ff -m "merge with no-ff” <name> | 普通模式合并 | 合并分支时,加上--no-ff 参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward 合并就看不出来曾经做过合并。 |
git stash
git stash pop
| Bug分支 |
修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场
git stash 一下,然后去修复bug,修复后,再
git stash pop ,回到工作现场。
|
git branch -D <name> | 丢弃一个没有被合并过的分支 | |
git remote -v | 查看远程库信息 | |
git push origin branch-name | 从本地推送分支 | |
git pull | 抓取远程的新提交 | 推送失败后可以先git pull |
git checkout -b branch-name origin/branch-name | 在本地创建和远程分支对应的分支 | 本地和远程分支的名称最好一致 |
git branch — set-upstream branch-name origin/branch-name | 建立本地分支和远程分支的关联 | |
git tag <name> | 用于创建一个标签 | 默认为HEAD,也可以指定一个commit id |
git tag -a <tagname> -m “explain" | 指定标签信息 | |
git tag -s <tagname> -m “explain" | 可以用PGP签名标签 | |
git tag | 查看所有标签 | |
git push origin <tagname> | 推送一个本地标签 | |
git push origin -- tags | 推送全部未推送过的本地标签 | |
git tag -d <tagname> | 删除一个本地标签 | |
git push origin :refs/tags/<tagname> | 删除一个远程标签 |