【无标题】

强制拉新
git fetch --all
git reset --hard origin/master
git pull

拉新某一分支
git fetch origin feature/ENG-930-reflect
git checkout feature/ENG-930-reflect

修改commit
git rebase -i HEAD~2
输入i
pick修改为edit, 修改commit信息
输入esc
输入:wq
git commit --amend -m “Fix ENG-3804:sequence”
git rebase --continue
git push -f

强制merge A分支合并B分支, 并强制使用B分支代码
git checkout feature/ENG-930-reflect
git merge --strategy-option=theirs master

强制合并分支
git checkout feature/ENG-930-reflect
git reset --hard origin/master
git push origin feature/ENG-930-reflect --force

删除本地分支
git branch -D 分支名

在线修改.gitmodules, 修改为自己的分支
chaos目录执行
git stash
proven_ground目录执行
git checkout feature/ENG-930-reflect
git pull
chaos目录执行
git checkout feature/ENG-930-reflect
git pull
proven_ground目录上传chaos

强制上传到远程分支
git push origin feature/ENG-930-reflect --force

回退到上一个版本
git reset --soft HEAD~1

git远程上revert
git revert HEAD
git commit --amend -m “Fix ENG-2424:brush”
git push origin

git下载代码并更改文件夹名字
git clone repo_name folder_name
eg: git clone -b master https://gitlab.booming-inc.com/booming/dev/engine/cb-engine-verify.git proven_ground

EV:
git clone -b master https://gitlab.booming-inc.com/booming/dev/engine/cb-engine-verify.git
git clone -b master https://gitlab.booming-inc.com/booming/dev/chaos.git

CB:
git clone -b cb/cherry-pick/ENG-V20220819 https://gitlab.booming-inc.com/booming/dev/projects/chaos.git
git clone -b master https://gitlab.booming-inc.com/booming/dev/projects/chaos.git

先更新chaos,再更新CB

base是基于修改
romate是当前使用分支的远程
local是目前本地的情况

问题:TLS certificate verification has been disabled!
解决:git config --global http.sslVerify true

问题:x509
解决:git config --global http.sslVerify false

问题:error: index uses extension, which we do not understand
fatal: index file corrupt
解决: 进入工程目录
rm -f .git/index
git reset

问题:Git rebase --continue complains even when all merge conflicts have been resolved
解决:进入根目录, 执行git add .

查看当前仓库url
git remote -v

修改当前仓库url
git remote set-url origin https://gitlab.booming-inc.com/booming/dev/engine/cb-engine-verify.git

从工作区和索引区删除文件
git rm 1.txt(文件名)

从索引区删除文件, 文件本地还存在, 只是不希望这个文件被版本控制
git rm --cached 1.txt(文件名)

查看当前版本
git branch -v

git多个commit合为一条
1.git从master新拉取一个分支A
2.git fetch origin A
3.git checkout A
4.git merge --squash 原分支B

git放弃所有本地修改
1)本地还没有提交到暂存区, 想放弃工作区的修改
git checkout .

2)本地已经提交到暂存区, 想放弃暂存区里的提交
git reset --hard HASH #返回到某个节点(通常是上上个节点), 不保留修改
git reset --soft HASH #返回到某个节点(通常是上上个节点), 保留修改

添加到暂存区
git add . 是当前路径下的所有更改
git add --all 不管你在本地工作区的哪个路径下,执行这个都是把本地工作区的所有修改都提交

git mergetool

如果用的是gitlab, 可以直接在页面上操作, Repository->commits->Cherry-pick
将一个分支上的某个commit合并到另一个分支,可用使用cherry-pick命令实现。
比如将dev分支上commit_id为f99f2b57b7ee72d55a08e699fbeec34cbac96cb8的提交合并到master分支:
1)切换到master分支:git checkout master
2)执行cherry-pick命令:git cherry-pick f99f2b57b7ee72d55a08e699fbeec34cbac96cb8
3)推送到远程master仓库:git push
注意master上新的commit id与dev上的id并不相同,即只是将dev上的修改拷贝过来作为一个新的提交,这就会带来一个问题:cherry-pick之后,dev想再次merge到master,要先对dev分支进行rebase变基或拉取master分支最新代码。

git比较两个分支代码
git difftool master branch_A

git blame <文件名> -L <起始行数,结束行数>
eg,如果要查找文件example.txt中第10行到第20行的代码是谁修改的,可以使用以下命令:
git blame example.txt -L 10,20

要查找某个文件的修改,可以使用以下命令, 这将显示指定文件的提交历史,包括提交的作者、日期、提交信息等。
git log – <文件路径>

如果只想查看最近的几次提交,可以使用以下命令, 其中,<数量>是要查看的提交数量,<文件路径>是要查找的文件路径。
git log -n <数量> – <文件路径>

另外,如果只想查看某个提交中对文件的具体修改,可以使用以下命令, 这将显示指定提交中对文件的具体修改内容。
git show <提交哈希值> – <文件路径>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值