git应用场景(进阶)

Git场景运用-CSDN博客

  • 专有名词
    Workspace:工作区
    Index / Stage:暂存区
    Repository:仓库区(或本地仓库)
    Remote:远程仓库
  • HEAD
    HEAD,指向当前分支最新提交点。所处分支变化,或产生新提交,HEAD跟着变。
  • add、commit
  • branch

展示分支,切换分支,创建分支,删除分支。

git branch列出所有本地分支
git branch -r列出所有远程分支   
git branch -a列出所有本地分支和远程分支
git branch [branch-name]新建分支,留在当前分支
git checkout -b [branch-name]新建分支,切换到该分支
git branch --track [branch][remote-branch]新建分支,与指定远程分支建追踪关系
git checkout [branch-name]切换指定分支,更新工作区
git branch -d [branch-name]删除分支
git push origin --delete [branch-name]删除远程分支
  • merge
    实际开放,从master分支切出一分支,开发完需求,经R3,R4,R5的commit记录,开发完需合入master,用merge。
    git fetch [remote]merge前先拉远程仓最新代码
    git merge [branch]合并指定分支到当前分支

    merge后,会出现conflict,主因两用户修改同文件同区域。如下

  • rebase

     

    rebase又称衍合,合并另种选择。

    开始阶段,处于new分支,执行git rebase dev,新commit在master分支重演一遍,checkout切换回new分支。这点与merge一样,合并前后所处分支并没改变。git rebase dev,通俗解释就是new分支想在dev肩膀继续。rebase也需手动解决冲突。

    rebase与merge区别

    两个分支,test和master,提交如下:

    master执行git merge test,如下:

     

    master执行git rebase test,如下:

    A---B---D---E---C'---F' test, master

    merge生成新节点,之前提交分开显示。而rebase不生成新节点,两分支融合成线性提交。

    想要干净,没merge commit线性历史树,选择git rebase

    想保留完整历史记录,避免重写commit history风险,选择用git merge

  • reset
    reset把当前分支指向另个位置,相应变动工作区和暂存区。

     

    git reset —soft [commit]

    只变提交点,暂存区和工作目录内容都不变

    git reset —mixed [commit]

    变提交点,同时变暂存区内容

    git reset —hard [commit]

    暂存区、工作区内容都修改与提交点一致状态

    git reset --hard HEAD

    工作区回上次提交时状态

  • revert
    git revert用新提交消除历史提交所做任何修改。

    revert与reset区别

    git revert用新commit回滚之前commit,git reset直接删除指定commit。

    回滚效果差不多。日后merge老版本有区别。git revert用逆向commit“中和”之前提交,日后合并老branch,改变不再出现,减少冲突。git reset把commit在某branch上删除,和老branch再次merge,被回滚commit还会被引入,产生冲突。

    git reset 把HEAD向后移动,而git revert是HEAD继续前进,新commit内容和要revert内容正好相反,抵消revert内容。
  • push
    上传本地仓分支到远程仓分支,实现同步。

    git push [remote][branch]

    上传本地指定分支到远程仓库

    git push [remote] --force

    强行推送当前分支到远程仓库,即使有冲突

    git push [remote] --all

    推送所有分支到远程仓库

  • 其他命令

    git status

    显示有变更文件

    git log

    显示当前分支版本历史

    git diff

    显示暂存区和工作区差异

    git diff HEAD

    显示工作区与当前分支最新commit间差异

    git cherry-pick [commit]

    选择commit,合并进当前分支

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值