美文网首页
工作中git常用命令

工作中git常用命令

作者: 简书她姥爷 | 来源:发表于2018-10-22 13:43 被阅读0次
    • 本地仓库与远程仓库关联;

      方法一:
      git clone ***

      方法二:
      git init
      git remote add origin ***

    • 添加追踪文件

      git add 文件夹/ 添加整个文件夹及内容
      git add *.文件类型 添加目录中所有此文件类型的文件
      git add . :他会监控工作区的状态树,使用它会把工作时的所有变 化提交到暂存区,包括文件内容修改(modified)以及新文件(new)和删除的文件。
      git add -u :他仅监控已经被add的文件(即tracked file),不会提交新文件(untracked file)。(git add --update的缩写)

    • 本地版本回退

      git reset --hard HEAD 覆盖工作区
      git reset HEAD file 将某个文件回退到最新状态,不会覆盖工作区
      git checkout -- file 将工作区的文件还原至最新状态

    • 本地分支与远程分支关联(远程追踪)

      方法一:
      git checkout -b lbname origin/rbname

      表示创建本地lbname分支,并切换到该分支,并与远程分支建立追踪关系

      方法二:
      在本地分支执行:
      git branch -u origin/rbname

      方法三:
      git push -u origin lbname
      -u 参数为--set-upstream的缩写
      语法:git push origin <source>:<destination>, 其中<>参数为refspec类型,是 Git 能识别的位置(比如分支 foo 或者 HEAD~1)

      查看地分支关联(跟踪)的远程分支之间的对应关系

      git branch -vv
      
    • tag操作

      git tag tagname [head] 创建tag
      git checkout -b lbname tagname 把 tag 快照对应的代码拉取到一个分支上
      git push --tags 将tags推送到远程仓库(git push默认不会推tags)

    • 分支合并

      两个分支,master,bugFix

      方法一: git merge (把目的分支的提交记录拿到当前分支,形成新的提交记录)
      git merge master
      git checkout bugFix
      git merge master //此处可fast forward,因为合并后的提交继承自bugFix

      方法二: git rebase. (把当前分支的提交记录,拿到目的分支上)Rebase 实际上就是取出一系列的提交记录,“复制”它们,然后在另外一个地方逐个的放下去。
      git rebase master
      git checkout bugFix
      git rebase master //此处fast forward。

    • 冲突问题解决

      git rebase 出现冲突后:
      git rebase --abort 取消这次rebase操作,切回到原分支
      git rebase --skip 忽略这次补丁,即这次要rebase的提交记录不要了
      git rebase --continue 解决冲突后,git add, 然后继续这次rebase

      git merge 出现冲突后:
      手动解决冲突文件后
      git add .
      git commit -m '解决合并**的冲突'

    • 整理commit详细步骤

      git rebase -i commitId
      

      commitId 为从哪次提交开始整理。
      pick =要这条commit ,什么都不改
      reword =要这条commit ,但要改commit message
      edit =要这条commit,但要改commit的内容
      squash =要这条commit,但要跟前面那条合并,并保留这条的messages
      fixup = squash +只使用前面那条commit的message ,舍弃这条message
      exec =执行一条指令(但我没用过)

      注: 修改完成后,会一条条指令顺序执行。若有冲突,则停止; 修改完冲突后,(git add . git rebase --continue),指令会继续执行

    • 更新远程分支列表

      git remote update --prune
      
    • 添加不追踪文件

      git update-index --assume-unchanged <取消跟踪的文件>

      已追踪的不想再追踪
      git rm --cached -r 文件夹
      git commit -m "****"

      注: 当我们需要删除暂存区或分支上的文件, 同时工作区也不需要这个文件了, 可以使用‘ git rm file_path’ ;当我们需要删除暂存区或分支上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制, 可以使用'git rm --cached file_path'

    • 与远程的同步

      git pull --rebase
      

    参考:

    https://git-scm.com/docs

    https://www.cnblogs.com/dracohan/p/5241511.html

    https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

    相关文章

      网友评论

          本文标题:工作中git常用命令

          本文链接:https://www.haomeiwen.com/subject/uafgzftx.html