1 | ➜ Txx git:(mqtt_test) ✗ git push origin HEAD:refs/for/rexx_v2.108.0%wip |
首次提交流程:
提交日志commit ( cmd + K) 这里可以用IDE来提交。后面的流程用命令。
正常操作即可。
hook操作
gitdir=$(git rev-parse –git-dir); scp -p -P 29418 juneyang@172.16.12.171:hooks/commit-msg ${gitdir}/hooks/
再次提交
git commit –amend
进入Vim操作中,添加日志 保存退出
:wq
.push 添加wip状态意味着 当次提交不会合并,在编辑中。
git push origin HEAD:refs/for/release_v2.18.0%wip
Virgo:
git push origin HEAD:refs/for/sprint/s25
Aries:
git push origin HEAD:refs/for/dev
注意 其他项目中的提交需要单独提交。防止提交遗漏。
第二轮修改后提交流程:
如果没有通过被拒绝之后,修改后再次提交
git add .
git commit –amend
如果在IDE中使用commint –amend中的方法 会出现 日志修改无效的问题。
VirgoXX:
git push origin HEAD:refs/for/sprint/s25
异常总结:
1.Git中vim修改权限: E45: 已设定选项 ‘readonly’ (请加 ! 强制执行)
初始设置进行修改操作后,无法保存,git命令行输入指令:
:wq!
回车即可强制修改并保存。
- Changed_ID 必须放到下面 否则会push失败。
Vim操作:
保存文件退出
:w 写入不退出
:w! 强制写入
:wq 写入退出
:wq!写入强制退出
ZZ 写入退出,使用shift+两次ZZ
:q 退出
:q!强制退出
小结:
‘i’进入编辑模式
‘esc’进入命令模式
‘:wq’保存退出
‘q!’不保存强制退出
参考:
FAQ:
https://github.com/eclipse/paho.mqtt.android/issues/212
如何解决冲突?
git reset –soft HEAD^
提交push命令
1 | git push origin HEAD:refs/for/${branch} |
git 提交了两个暂未入库的的问题
必须等前一个入库后,另一个才能操作。
git rebase - i 进入提交 历史修改
将前缀 修改为edit 或者简写为(e)
1 | git status |
git commit - amend时
出现正常的变基
1 | # |
操作时当前有的分支为rebase + 提交的变基点。
操作完成后 回到正常的状态,
执行
1 | git rebase --continue |
此时的分支状态不再出现rebase字样。即正常的分支。
新建分支交上传远程:
git checkout -b “分支名”
git push origin “分支名”
删除远程分支 :
git push origin –delete “分支名”
删除本地分支:
git branch -D “分支名”
Git 还原到某一次提交
175070cf47f99df8ee0a2c6c14abe70b99ec5a85
示例:
找到想要还原的某一次提交:
git log –oneline
Git checkout xxxx .
合并提交记录
https://segmentfault.com/a/1190000023055669
冲突解决
背景:当提交代码到 review board 后未入库,别人的代码先入库,并且出现冲突,此时代码的操作。
代码丢失处理:
从 git polyGerrit 中添加代码:
git cherry-pick
git fetch “ssh://juneyang@172.16.12.171:29418/Gemini” refs/changes/79/6879/1 && git cherry-pick FETCH_HEAD
git diff
解决冲突后
git add 某一个文件 如:
1 | git add src/main/res/values/strings.xml |
然后
1 | git cherry-pick --continue |
最后 push
1 | git push origin HEAD:refs/for/dev |
实战:
第一步: git fetch xxx cherry-pick xxx
第二步:解决冲突。
第三步:根据提示,git add.
第四步: 执行 git cherry-pick –continue时出现
最后一步: push。
git push origin HEAD:refs/for/dev
操作完成!
git push error:
https://stackoverflow.com/questions/11972384/git-push-remote-rejected-change-closed
1 | Do this to fix issue: |
1.删除 change-id
Change-Id: I8b4d553b3eb0771e1a1727e9c39d9d22f80de478
- git commit –amend
之后 生成了新的 change-id
git 提交时 有被人插队,push 时发现 head 的指针不是指向最新的了,你需要做的就是
- git log 查看 commit-id
- git reset –soft commit-id
1 | git reset --soft ee6b6757ace472d299f862b4292fa80da2bd1fe5 |
本地缓存 并更新 :git stash save ui 、git pull –rebase
将工作区间刷新:git reset –hard f8be84627b6141d716ef84f61ef6f01e463ca8c3
最后重新提交
git stash pop、解决冲突、git add. git commit 、git push……
第二种方法:
git reset --soft HEAD^
撤销上一次提交,修改的内容保留
如果暂存区为空,则将上一次修改放入暂存区
如果暂存区非空,则将不改变暂存区
该操作不改变工作区git reset --hard HEAD^
工作区,暂存区,,仓库均保持为上一次提交的内容
小结:
https://www.jianshu.com/p/63199427ee68
- 本文链接: https://june5753.github.io/blog/2021/08/02/Git 使用注意事项总结/
- 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!