2022-07-05 23:21:26

git常用操作

常规操作

添加暂存

git add .

提交

git commint -m "commit log"

可合并

git commit -am "add && commit"

推送

git push origin master

克隆仓库

git clone git@sre.wiki:devops/blog.git

默认分支

指定分支克隆

git clone -b branch_a git@sre.wiki:devops/blog.git

从某一commit提取变更合并到另外一个commit/分支

git cherry-pick {CommitID}

把某个分支合并到另外一个分支

merge方式

# 在master分支,将dev分支合并到master中 git merge dev

rebase方式

# http://jartto.wang/2018/12/11/git-rebase/ git:(feature1) git rebase master # 如果有冲突,解决冲突,然后 git add # 你无需执行 git-commit,只要执行 continue git rebase --continue # 如果不想继续,想回到起初的样子 git rebase —abort

切换分支

git checkout sre/dev

撤销修改,恢复成原有的样子

git checkout .

查看变更

git diff

本地合并多次提交为一次提交,然后push

# 合并4次提交记录 git rebase -i HEAD~4 ## 注意不要合并先前提交的东西,也就是已经提交远程分支的纪录。 git rebase --edit-todo git rebase --continue

查看历史提交

git log

问题

关于分支合并&冲突解决的二三事

如果 online 分支 和 master 分支 都作为保护分支,online 只能接受来自 master 的 merge,master 只能接受来自 feature分支 的合并,那么只要 online 和 master 都包含所有的commit变更,那么master合并到online就不会出现冲突的情况。

那么如果 master 合并 online 出现了冲突,该怎么办呢?(当然最好按照严格流程来,这不万一嘛!)首先解决冲突,按照提示,在本地解决,checkout online,merge master --no-ff,然后解决冲突 add commit push(当然这里需要有权限),这时候online就包含master的所有变更了,但是master不包含online的那个解决冲突的变更,所以还需要将online合并到master,无冲突,直接合并即可,最终保证online和master包含所有变更,接下来就可以按照规范流程走了!!!

.gitignore不生效

git rm -r --cached . git add . git commit -m 'update .gitignore'

本文链接:https://troy.wang/post/git-cases.html

-- EOF --