【Git】常见场景与常用命令

前言

    git是在公司工作中必不可少的开发工具之一,也是围绕着GitHub进行代码更新等操作。所以学会git和github的相关操作是开发必不可少的步骤。而对于新人来说,或许平日里对与GitHub的使用,只是进行了代码的存储和搜索,但是要说维护却不一定会有。

所以,新人的进公司的第一课,就是要学会怎么样去使用git和GitHub。

    接下来,将分成三个模块进行讲解工作中如何去使用GitHub和git的命令操作等。

第一块:Github和工作的场景概览

 

步骤说明:

注意:upstream 为约定公司代码上游的命名,而origin为自己forked的公司代码库名。两者都可以随意定义,但是建议按照约定的说法进行设定。

  1. Forked:需要将公司的远程代码upstream库复制一份到自己的GitHub当中,方便以后的pull requst 从自己库到公司代码库

  2. Git clone upstream’s repo to local :克隆公司代码文件到本地一份

  3. Checkout a new branch for your work from ’test’(branch):确定本地要使用的主要分支,一般克隆下来的公司代码库,默认当前分支是master,如果有特别的需要,比如某个分支是特别的存在,或者这个分支才是主要要维护的,必须先checkout到这个分支上,例如,本例中使用’test’作为需要的分支名。然后从’test’ checkout 出一个新的分支,比如是’test_a'

  4. Push the change of new branch to your personal repo:将修改的分支是要push到自己的origin库中,不允许直接提交到upstream

  5. Create a pull request(new branch) to upstream target branch:此时提交上的分支名为’test_a’(origin),要提出pull request合进去到upstream中的’test’分支中!对应哪个分支修改的内容必须提到哪个分支中去!

  6. Rebase last code:如果pull requst被code reviewer批阅并且添加修改意见,而自己本地也进行了修改,但是还请注意,必须rebase下最新的代码(也即从upstream的test分支进行rebase),以防止自己提交过程当中,其他人的代码进库,而可能造成冲突的情况(会需要再次修改,这样会很糟糕)

  7. Rebase last code:对于本地上,强烈建议和推荐,就是要维护一个永远干净的主要分支代码,但凡需要进行修改代码的相关操作,请从该干净且实时的local branch ‘test’ 分支checkout出新的分支,再进行后续的操作。

第二块:常见git操作场景

  1. Pull Request需要修改的场景 (对应第一块中的步骤即为: 6 -> 4 ,没有其他步骤!)

  2. 删除分支的操作

    
    git push ${repo_url} --delete ${branch_name}
    * ${repo_url}表示远程的库名
    * ${branch_name}表示是远程库名下的分支
    

     

  3. rebase 合并两个已经pr的commit

  4. git rebase最新代码的步骤 (对应第一块中的步骤即为:6 , 7 两种的rebase)

    git pull -r remote_repo_name branch_name
    
    samples : git pull -r upstream master

     

  5. 分割某一个包含两个及多个commit的pr中的commit对应到不同issue的pr中去 

第三块:常用git命令

git branch -v # 效果:看本地有多少分支

git log —all # 效果:查看所有分支记录

git checkout -b newBranchName oldBranchName # 效果:基于oldBranchName创建新的分支newBranchName,并且切换过去

git diff commitIdOne commitIdTwo # 效果:比较两个commitId的区别

git diff $branchOne $branchTwo -- <filename> # 效果:查看不同提交的指定文件的差异,此时比较的是两个不同分支当中的某一个文件的具体差异!

git commit --amend --no-edit # 效果:对应在修改pr过程当中,或者多次修改,但是只保留一次commit message,不再重写commit message的情况

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值