0%

Git常用操作指令

1 常用

命令 说明
git init 把指向的目录变成Git可以管理的仓库
git add readme.txt 把readme.txt加入仓库
git commit -m “wrote a readme file” 把文件提交到仓库并进行说明
git status 查看仓库状态是否被修改
git diff readme.txt 查看readme.txt修改详情
git log 查看提交日志
git log --pretty=oneline 简洁查看提交日志
git reset --hard HEAD^ 退回到上一个版本,HEAD^^上两个版本,HEAD-100上100个版本
git reset --hard 1094a 回到版本号前面为1094a的文件版本
git reflog 记录每一次命令(可以查看版本号)
git diff HEAD -- readme.txt 提交文件后,查看工作区和版本库中有什么不同
git checkout -- readme.txt 把readme.txt文件从版本库替换工作区版本,可以用作把工作区的修改全部撤销,恢复工作区误删文件,但是只能恢复到最新一次修改后的文件,会丢失修改提交内容
git reset HEAD readme.txt 把readme.txt文件暂存区的修改撤销,重新放回工作区,HEAD表示最新版本
git rm test.txt 从版本库删test.txt, 之后可git commit -m "remove test.txt"提交删除报告

2 Github

命令 说明
ssh-keygen -t rsa -C "youremail@example.com" 创建SSH Key, 实例改为自己的邮箱
git remote add origin git@github.com:yourself/learngit.git 把本地learngit仓库关联yourself的learngit仓库
git push -u origin master 把本地库的master分支内容推送到远程仓库。由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令git push origin master
git clone git@github.com:michaelliao/gitskills.git 从远程库克隆

3 分支管理

3.1 基本

命令 说明
git branch dev 创建dev分支
git checkout dev 切换到dev分支
git checkout -b dev 创建dev分支,并切换到dev分支,-b表示创建并切换相当于git branch dev创建分支 +git checkout dev切换分支
git branch 列出所有分支,当前分支前面有*号
git merge dev 把指定dev分支合并到当前所在分支, Fast forward(快速合并)
git branch -d dev 删除dev分支
git branch -D dev 强行删除dev分支,在分支未合并的时候可以强行删除
vi readme.txt 编辑readme.txt,删除分支冲突
git log --graph --pretty=oneline --abbrev-commit 查看分支合并情况
git merge --no-ff -m "merge with no-ff" dev —no-ff 参数,表示禁用Fast forward,-m添加合并描述,把dev分支合并到当前分支

分支策略在实际开发中,我们应该按照几个基本原则进行分支管理:

  1. master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活
  2. 干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本
  3. 多人协作时候每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。

    3.2 工作区操作

命令 说明
git stash 储存当前工作区到stash
git stash list 查看被储存的stash内容
git stash pop 把stash内容恢复到工作区并删除stash区
git stash apply stash内容恢复到工作区,但不删除stash区
git stash drop 删除stash区

3.3 多人协作

命令 说明
git remote 查看远程库信息
git remote -v 显示更详细的远程库信息
git push origin dev 推送dev分支到远程库
git checkout -b dev origin/dev 创建远程origin的dev分支到本地并切换至dev分支
git pull 把最新提交抓取下来
git branch --set-upstream branch-name origin/branch-name 创建本地分支与远程分支的联系

3.4 Rebase整理

命令 说明
git rebase 将分叉提交变成一条直线

4 标签管理

先切换到需要打标签的分支上

命令 说明
git tag v1.0 给最新的commit打上v1.0的标签
git tag 查看所有的标签
git tag v0.9 f52c633 给指定的f52c633 commit打上标签
git show v0.9 查看v0.9标签的详情
git tag -a v0.1 -m "version 0.1 released" 1094adb 给指定v0.1标签添加说明文字,1094adb为版本号
git tag -d v0.1 删除v0.1标签,因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除
git push origin v1.0 推送指定v1.0标签到远程
git push origin --tags 推送全部标签到远程
git push origin :refs/tags/v0.9 删除远程到标签v0.9

注意

标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。


如果您觉得还不错,可以请我喝杯咖啡。
  • 本文作者: 5AM
  • 本文链接: http://neroasmar.top/git/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!