git 高级用法

1. 注意

如果在本地分支进行开发,这时候切到远程主分支,本地分支会被删除,(第4条对出现这个问题的原因做了详细说明)当然可以找回,但不建议这么做,创建的分支不会被删除,所以进行fea开发时,首先创建分支

2. git rebase

在主分支上创建一个分支进行fea开发,fea开发完后,重新拉取后发现主分支已经向前推进了几个版本,这时候可以进行

①merge

这种做法比价常见,这样git的提交记录就会很多分支齐头并进,融汇胶合

②rebase

切到fea分支,右击主分支,选择 rebase current branch on (master),意思是fea分支从当前的base切换到新的base,

切到master 分支,右击分支,merge到fea分支

删除fea分支

推送master分支

这样git提交记录就是一条直线

3.cherry pick

fea已经开发好,切到主分支,右击fea分支,cherry pick commit,解决冲突,然后手动commit,或者选择自动生成一次commit,

这样就将从分支的多次提交合并为一次提交,推送master 分支,删除fea分支

 cherry-pick --no-commit a496807bd63dc73dd996d280738bc1acd6215d8c

4.关于git的远程分支

切到git的远程分支时3个选项:

创建本地同名分支

创建本地异名分支

只是切到远程分支

git的远程分支不能用来修改,只是用来做参考,做备份

checkout --force "origin/release_dev_mfg"

HEAD is now at 88fedefd7 revert link script

但是当前分支却是 no branch

意思是只能切到本地分支?

远程分支是远程服务器上的分支,克隆一个仓库后,应没有一个本地分支,如果要做开发,需要在本地分支上进行,所以需要check out 到一个分支,而这时候就需要使用切到远程分支的3个选项了

在本地你可以checkout到这些复制到本地的这些远程origin/branch ,但是你无法对这些branch进行修改

复制这些远程branch到本地又不允许修改的目的,是为了让你知道本地的branch与位于远程主机的branch有哪些改动

所以,单纯地切到远程分支是没有意义的

5.常用命令

1. fetch --progress
2. checkout -b "branch_test" 创建新分支
    -b <branch>           create and checkout a new branch
    -B <branch>           create/reset and checkout a branch
    --force           force checkout (throw away local modifications)

    没有参数,只是切到本地分支,忽略本地改动
3. branch -d "branch_test" 删除分支
   branch -D "branch_test" 强制删除分支
4. add ***   暂存文件
5. commit -m "update xxx"
6. rebase "433881"
7. merge asdf
8. cherry-pick  #实际是进行多次的merge,假如被cherry pick的分支上有多次修改了同一行,则会出现冲突

9.git switch -c <new-branch-name> 创建分支的另一个方法

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值