git常用命令

团队协作git操作流程

  1. git clone XXX //克隆代码库(默认仓库名origin)
  2. git checkout -b test //新建并切换到该分支
  3. // modify some files //完成修改
  4. git add . //把修改加入index中
  5. git commit -m '' //提交修改到本地test分支

review代码

  1. git checkout master //切换到master分支
  2. git pull //更新代码到工作台
  3. git checkout test //切换到test分支
  4. git meger master //把master分支的代码merge到test分支
  5. git push origin 分支名 //把本地当前分支的代码push到远程库origin指定的分支上
  • 目前正在test分支上面开发某个功能,但是没有完成。突然一个紧急的bug需要处理
  1. git add .
  2. git stash
  3. git checkout bugFixBranch
  4. git pull --rebase origin master
  5. fix the bug
  6. git add .
  7. git commit -m ''
  8. git push
  9. git checkout test
  10. git stash pop
  11. continue new feature's development

Git工作流

  • git init //初始化本地git环境,默认分支名master
  • git clone XXX//克隆一份代码到本地仓库,默认仓库名origin
  • git pull //把远程库的代码更新到工作台
  • git pull --rebase origin master //强制把远程库的代码跟新到当前分支上面(防止有人对特性分支所基于的分支进行rebase操作)
  • git fetch origin // 把远程仓库origin的代码更新到本地缓存(此时,抓取到的分支不能直接操作,要建立对应的本地分支,见下面一行)
  • git checkout -b test origin/test // 新建本地分支test,使其跟踪远程分支orgin/test(本地和远程分支的名称最好一致)
  • git add . //把本地的修改加到stage中
  • git commit -m 'comments here' //把stage中的修改提交到本地库
  • git push //把本地库的修改提交到远程库中
  • git branch -r/-a //查看远程分支/全部分支
  • git checkout master/branch //切换到某个分支
  • git checkout -b test //新建test分支
  • git checkout -b 本地分支名 远程仓库名/远程分支名     //将远程git仓库里的指定分支拉取到本地
  • git branch -d test //删除test分支
  • git push origin --delete test  //删除远程仓库origin下的test分支
  • git merge master //假设当前在test分支上面,把master分支上的修改同步到test分支上
  • git merge tool //调用merge工具
  • git rebase [变基分支paul] [目标分支master] // 变基操作可以使历史记录更加整洁。在执行变基操作前,要先切换到变基分支。需注意只能将变基用在从未推送至公共仓库的提交上(不对除本地仓库外还有副本的分支执行变基)
  • git checkout master
  • git merge paul
  • git stash //把未完成的修改缓存到栈容器中
  • git stash list //查看所有的缓存
  • git stash pop //恢复本地分支到缓存状态
  • git blame someFile //查看某个文件的每一行的修改记录()谁在什么时候修改的)
  • git status //查看当前分支有哪些修改
  • git log // 查看当前分支上面的日志信息
  • git log 的常用选项 
    • -p 按补丁格式显示每个更新之间的差异。
    • -<n> n代表任何正整数,仅表示最近的若干条提交。
    • --stat 显示每次更新的文件修改统计信息。
    • --shortstat 只显示 --stat 中最后的行数修改添加移除统计。
    • --name-only 仅在提交信息后显示已修改的文件清单。
    • --name-status 显示新增、修改、删除的文件清单。
    • --abbrev-commit 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。
    • --relative-date 使用较短的相对时间显示(比如,“2 weeks ago”)。
    • --graph 显示 ASCII 图形表示的分支合并历史。
    • --pretty 使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format.       git log --pretty=format:"%h - %an, %ar : %s" //自定义日志打印格式
  • git diff //查看当前没有add的内容(工作目录与暂存区的区别)
  • git diff --cache //查看已经add但是没有commit的内容(暂存区和已提交的区别)
  • git diff HEAD //上面两个内容的合并
  • git reset HEAD <file>  // 撤销某文件的暂存(无hard选项只影响暂存区)
  • git reset --hard HEAD // 撤销工作目录修改
  • git checkout -- [文件]  // 单个文件回滚到上次提交的版本
  • git reset --soft HEAD^ // 撤销本地提交(commit),保存工作目录的修改
  • git reset --hard HEAD^ // 撤销本地提交不保存工作目录的修改
  • git push [仓库名] [分支名] -f //撤销远程修改,(用在上面那条命令之后)
  • git remote // 查看远程仓库
  • git remote add <远程仓库名缩写> <url>  // 添加远程仓库
  • echo $HOME //查看git config的HOME路径
  • export $HOME=/c/gitconfig //配置git config的HOME路径

多人协作的工作模式通常是这样:

  1. 首先,可以试图用git push origin <branch-name>推送自己的修改;

  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

  3. 如果合并有冲突,则解决冲突,并在本地提交git add, git commit;

  4. 解决掉冲突后,再用git push origin <branch-name>推送就能成功!

原文地址:https://www.cnblogs.com/ceceliahappycoding/p/10575160.html