首页 > 其他 > 详细

Git命令

时间:2019-12-18 20:10:03      阅读:104      评论:0      收藏:0      [点我收藏+]

技术分享图片       技术分享图片

1.拉取远程分支并创建本地分支:   

                git clone -b remote_dev http://1*ce.git   local_dir    //  -b:  指定分支拉代码

               方法一:git checkout -b 本地分支x  origin/远程分支名x           // 本地新建并自动切换分支x。本地分支会和远程分支建立映射关系。

               方式二:git fetch origin 远程分支名x:本地分支名x                       //本地新建分支x但不自动切换,需手动checkout。本地分支不会和远程分支建立映射关系。

 

2. 关联: 目的是在执行git pull/push时就用指定对应的远程分支

        git   branch --set-upstream-to=origin/remote local

        git remote add origin gy(为空时默认master) git@.....git

 

3. 常用命令

git branch –a本地和远程

git branch –r 远程

git branch 本地

git branch –D local删除

git commit --amend 修改msg

git checkout –b dev origin/remote 新建分支并切换

git branch dev  新建分支不切换

git checkout dev分支切换

git push origin local:remote    

删除远程仓库:$ git push origin --delete remoteDev

 

git pull origin dev(远程分支名)   [git pull --rebase]

---------git reset --hard 撤销某次提交----------- git revert 撤销某次提交--------------合并代码beyond compare---------------------

git reset --hard commit_id 后git push –f   //远程分支退到指定commit 注:回退风险,防止回退别人的代码

git revert –n cmid      解决冲突后add/commit/push

4.分支合并问题:

      4.1.把master分支合并到其它分支用rebase,把其它分支合并到master用merge。rebase不会产生多余的commit,并且保持直线。但会污染本地自开发分支,不建议

    •  首先切换到master分支:  git pull拉取最新分支状态;
    •  然后切回local分支:

                      git rebase -i  【IdBeg】【IdEnd】     // 前开后闭,将本地多次提交合并为一个以简化提交历史。否则git rebase master时会多次解决冲突(最坏情况下,每个提交都会相应解决一个冲突)。

                      git rebase master // 将master同步到本地,可能要手动解决冲突。【解决冲突试运行,用git-add后无需commit,只要执行: git rebase --continue】

    •  切换到master分支:   git merge local后,git push将master分支的提交上传。

      4.2 cherry-pick命令

                 git  rebase -i head~3      合并前三个,dev分支上合并提交,然后切换到master

                 git  cherry-pick  bc09e8d8   将dev上某次提交内容 合入到master分支上 。 【解决冲突后add/git cherry-pick --continue】

      4.3 推荐merge request

    1. git checkout -t origin/preview   // git checkout –b dev-guo origin/remote
    2. git pull   origin preview
    3. git merge   dev-guyan              //git merge origin/dev-guoyan
    4. git push origin preview

      4.4 撤销git reset

--mixed   不删除工作空间改动代码,撤销commit,且撤销git add . 操作.    默认参数.   

--soft    不删除工作空间改动代码,撤销commit,不撤销git add . 

--hard   删除工作空间改动代码,撤销commit,撤销git add .      注意完成这个操作后,就恢复到了上一次的commit状态。

 

                1.本地分支落后: Fast-forward合并,可以理解为HEAD指针指向的快速移动。    

                2.本地分支超前:解决冲突后git-add,然后不用-m参数直接git commit:wq保存退出)。

      4.5 插入commit:

  • git rebase -i b0aa963       # edit commit_d后保存退出
  • [提交本次commit_t] 后 git rebase --continue $ t会在d之后
  • git push -f                        # 有风险  !!

=================================================================================================================

git fetch只会将本地库所关联的远程库的commit id更新至最新. 本地库并没有变化,HEAD没有变化.

git pull会将本地库更新至远程库的最新状态,HEAD也相应指向最新的commit id

git pull发生冲突时, 先用git stash命令把当前修改过的工作存储到栈里面,此时代码还原到了未修改时的样子 
再git pull拉取代码. 再git stash pop把栈里面的代码还原,这时如果再冲突,需要手动解决.

 

 

 

 

 

Git命令

原文:https://www.cnblogs.com/bsszds930/p/12055872.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!