zoukankan      html  css  js  c++  java
  • 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>推送就能成功!

  • 相关阅读:
    【数学】Codeforces Round #470 (Div2) B
    【数学】At Coder 091 D题
    【2-SAT】The Ministers’ Major Mess UVALive – 4452
    【二分答案+2-SAT】Now or later UVALive
    【栈模拟dfs】Cells UVALive
    浅谈2-SAT(待续)
    【交叉染色法判断二分图】Claw Decomposition UVA
    【拓扑排序或差分约束】Guess UVALive
    【欧拉回路】UVA
    周总结8.15
  • 原文地址:https://www.cnblogs.com/ceceliahappycoding/p/10575160.html
Copyright © 2011-2022 走看看