Git用法详解

        默认,git项目只有一个分支master,当然可以在本地创建多个分支,并推送到远程git仓库上,或者将远程git仓库上的其他分支拉取到本地。

一、查看本地已有的分支

进入到项目根目录,打开命令行/终端,输入指令git branch,将会显示该项目的本地的全部分支,其中、当前分支的前面有*号。

二、本地检出一个新的分支并推送到远程仓库

1.创建本地分支

git checkout -b 新分支名

执行该指令后,会在本地创建一个新分支,该分支是从当前分支上检出的,所以所有文件内容都和当前分支一模一样,这是正常的。创建成功后,将自动切换至新分支上。

2.推送本地分支到远程仓库

git push --set-upstream origin/分支名

例如,把上一步创建的本地dev1推送到远程仓库: 

三、将远程git仓库里的指定分支拉取到本地(本地不存在的分支)

git checkout -b 本地分支名 origin/远程分支名

这个将会自动创建一个新的本地分支,并与指定的远程分支关联起来。
例如远程仓库里有个分支approve,我本地没有该分支,我要把approve拉到我本地:

若成功,将会在本地创建新分支approve-20190511,并自动切到分支approve-20190511上。

四、git cherry-pick用法

        git cherry-pick可以理解为”挑拣”提交,它会获取某一个分支的单笔提交,并作为一个新的提交引入到你当前分支上。 当我们需要在本地合入其他分支的提交时,如果我们不想对整个分支进行合并,而是只想将某一次提交合入到本地当前分支上,那么就要使用git cherry-pick了。用法如下:

git cherry-pick [<options>] <commit-ish>...

常用options:
    --quit                退出当前的chery-pick序列
    --continue            继续当前的chery-pick序列
    --abort               取消当前的chery-pick序列,恢复当前分支
    -n, --no-commit       不自动提交
    -e, --edit            编辑提交信息

   (1)git cherry-pick commitid
    在本地仓库中,有两个分支:branch1和branch2,我们先来查看各个分支的提交:

# 切换到branch2分支
$ git checkout branch2
Switched to branch 'branch2'
$ 
$ 
# 查看最近三次提交
$ git log --oneline -3
23d9422 [Description]:branch2 commit 3
2555c6e [Description]:branch2 commit 2
b82ba0f [Description]:branch2 commit 1
# 切换到branch1分支
$ git checkout branch1
Switched to branch 'branch1'
# 查看最近三次提交
$ git log --oneline -3
20fe2f9 commit second
c51adbe commit first
ae2bd14 commit 3th

   现在,我想要将branch2分支上的第一次提交内容合入到branch1分支上,则可以使用git cherry-pick命令:  

$ git cherry-pick 2555c6e
error: could not apply 2555c6e... [Description]:branch2 commit 2
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'

      当cherry-pick时,没有成功自动提交,这说明存在冲突,因此首先需要解决冲突, 解决冲突后依次运行git add .git cherry-pick --continue命令。 

$ git add .
$ git cherry-pick --continue .
[branch1 790f431] [Description]:branch2 commit 2
 Date: Fri Jul 13 18:36:44 2018 +0800
 1 file changed, 1 insertion(+)
 create mode 100644 only-for-branch2.txt

   现在查看提交信息: 

$ git log --oneline -3
790f431 [Description]:branch2 commit 2
20fe2f9 commit second
c51adbe commit first

(2)git cherry-pick commitid

git cherry-pick xxx_id1..xxx_id3

 注意:中间的两个点,表示把两个commit区间的所有commit多复制过去。但是不包含第一个commitid , 即 git cherry-pick (commitid1..commitid100], 如果想搞成[]区间,使用 git cherry-pick A^..B 相当于[A B]包含A。

在MR列表中显示给定MR的批准。 切换到GitLab之后,我注意到依赖于合并请求的批准系统时,很难预先知道您已经批准了哪些请求。 进行此扩展是为了清楚地知道您已完成的合并请求,而不必单击每个合并请求。 变更日志:2019年1月21日(v1.3.3):*修复了非常大的组视图*组视图中合并请求`li`项的选择器出现问题,导致在何处注入批准和移动作者的观点。 2019年1月20日(v1.3.2):*添加了群组支持*该插件现在可用于所有复合群组视图。 *使用单个API调用获取项目ID(仅当以前没有看到过!),然后使用与项目视图类似的功能。 *添加选项以清除所有缓存和设置(2019年1月19日(v1.3.1)):*修复了一个缓存错误,该错误涉及从页面上获得错误的时间戳记*修复了通用权限问题*允许我更快地发布*潜在地减少了可以与该扩展程序一起加入白名单的网站的数量。 将继续调查。 2019年1月18日(v1.3.0):*现在托管在chrome网上商店中! *现在可与任何gitlab主机一起使用! *修复了设置不起作用的问题*减少了后续页面刷新时潜在的调用数(减少了对MR状态检查的初始API请求)为0 *修复了由于新问题导致的排序/搜索/排序/页面浏览量问题获取MR时间戳的方法*添加了新设置*现在,您可以自动将其标记为复选框,以在合并MR后自动删除分支。 默认情况下禁用此功能。 *清理了一些代码-由于进行了新的缓存检查,最终使内部内容看起来更好。 页面加载速度更快! 支持语言:English
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值