工作中git常用命令

  • 本地仓库与远程仓库关联;

    方法一:
    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 :, 其中<>参数为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常用命令)