版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

Git备忘录,记录常用的命令。


检出某次commit并建立一个新分支:

代码块
git checkout commitid -b 本地分支名称



参考:https://kunzhao.org/docs/tutorial/git/merge-multiple-commit/

...

使用rebase合并分支上的某个commit到master分支,比如下面的操作:

信息
iconfalse
A --- B --- C          master
 \
  \-- D                topic

to

信息
iconfalse
A --- B --- C          master
       \
        \-- D          topic

instead of

信息
iconfalse
A --- B --- C          master
             \
              \-- D    topic

操作方法:

代码块
git branch temp master^
git checkout topic
git rebase temp
git branch -d temp


打标签:

git tag v1.0.0 -m "实现日志模块"

git push origin v1.0.0

git tag


git检出时如果想直接指定远程仓库,使用下面的指令

git checkout -b main origin/main

这里检出的本地main分支会直接和远程仓库的main分支建立联系


//TODO: 了解基于git-flow工作流。


git以分支的形式提交修改并在gitlab上提交合并申请操作实践:

代码块
git checkout -b develop
git push origin develop:develop

左边的develop是指定本地的分支名称,右边的develop指定的是远程origin上的分支名称,如果远程没有develop分支,则会自动创建远程分支。

上面既可以在检出develop之后修改提交再push,也可以先在本地master分支上修改提交,然后检出develop分支,再push。

注意,上面的push并不会将本地的develop分支与远程的develop分支建立关联,如果要建立关联,可以在push时执行--set-upstream选项,或者事后执行以下指令:

代码块
git branch --set-upstream-to=origin/develop
警告

git push origin A:B 这种形式,如果只提供A,那么A表示的是远程分支,也就是只会推送与远程分支A关联的本地分支,而不是将当前分支推送给远程分支A。



gitlab上提交合并申请时勾选合并后删除分支选项,避免已经合并过的分支一直留存。

合并通过后本地执行get remote prune命令把失效的远程分支删除。

如果要取消本地develop分支与远程develop分支的关联,可以执行下面的指令:

代码块
git branch --unset-upstream develop


git reset --hard commitid 强制回滚到某个版本。


替换远程仓库操作记录:

代码块
git remote remove origin
git remote add origin git@github.com:zhongluqiang/sylar-from-scratch.git
git branch --set-upstream-to=origin/main main


操作记录:

A端,master分支:

代码块
git add *
git commit -m "xx"
git push origin master:develop # 将本地的master分支推送到远程的develop分支,如果远程没有这个分支,则自动创建


B端,master分支:

代码块
git pull
git checkout -b develop origin/develop  # 检出刚才提交的develop分支
git checkout master # 切回master分支
git merge develop --no-commit --no-ff # 将develop分支的内容合并到master分支上,但不自动提交,也不自动fast-forward,效果就是这次提交的内容只被暂存了,可以继续修改和重新提交