一、准备工作
下载、配置git,配置命令见公司文件,重点别忘了配置git中的ssh
二、拉取代码至本地
1、复制gerrit里面的clone命令,在本地的目标文件夹里面点击git bash here
此时本地有个.git的隐藏文件夹
2、继续git bash here,此时在master分支。列出所有远程分支
3、切换到指定分支,并且拉代码
此时,代码就在本地了
老师建议用 git pull拉代码,而不是checkout
三、更新代码
目前见该链接
Git如何更新远程仓库代码到本地_git更新远程代码到本地_财富自由不是梦的博客-CSDN博客
四、提交代码
准备工作:配置COMMIT_TEMLATE文件
在vscode的COMMIT_TEMLATE文件中写好待提交代码的信息
git config --global commit.template 【COMMIT_TEMLATE文件相对路径】
注意:每次提交代码之前要更新一下(pull)!!!
commit->pull->push
①文件提交至暂存区
②代码commit,有个校验,:wq可保存
③代码push
此时可以在gerrit中看到刚提交的代码,等待审核即可
git命令解释
history 查看之前已经写过的所有历史命令
git status (filename)查看文件状态
git log 查看提交的历史信息
git stash 把当前进度保存起来(工作区和暂存区)
①git stash list 查看存储列表
②git checkout . 从暂存区检出该文件
③git stash pop 恢复暂存的工作区内容 (和git stash相反)
git commit --amend git commit --amend - 简书 (jianshu.com)
git commit --amend --no-edit
追加提交,它可以在不增加一个新的commit-id的情况下将新修改的代码追加到前一次的commit-id中,其中--no-edit是指不修改commit的message
git pull --rebase(在多人使用同一个远程分支合做开发,推荐使用,如果遇到冲突会显示)将远程主机的最新内容拉去到本地库后直接变基到工作区中,即:git pull --rebase = git fetch + git rebase,可能会产生冲突手动解决。
git reset 命令用于回退版本
git rebase --continue 分支合并,修复冲突,提示开发者,一步一步地有没有解决冲突,fix conflicts and then run "git rebase --continue"
git merge --continue 提交完这一个冲突之后,继续其他冲突
回退到具体的版本
———————————————————————————————————————————
出现merge conflict冲突:
① gerrit 的 status显示 merge conflict
gerrit Merge Conflict 解决办法«海底苍鹰(tank)博客
———————————————————————————————————————————
以下命令可以在push到gerrit之后进行撤销,之前更改的文件会重新出现,然后就可以重新提交了
git reset HEAD~2 回退两个版本
———————————————————————————————————————————
问题:push到gerrit出现问题如下:
解决方案:
git log 查版本
git reset --soft 5efcc9e1 退回指定版本(版本号的8位)
git stash 暂存自己的修改
git pull --rebase 变基
git stash pop 放出来自己的修改 (可能要处理冲突)
接下来就是常规上传操作 git add三部曲
———————————————————————————————————————————
git覆盖本地分支的办法,本地的版本完全和远端一致
———————————————————————————————————————————命令:追加提交,两个提交记录显示为一次
git commit --amend --no-edit
———————————————————————————————————————————
问题:git reset以后,找不到最原始的版本了
解决方案:git reflog,查看所有commit记录
git reset --hard 版本号
———————————————————————————————————————————
问题:如何撤销之前git commit --amend 的内容?而不是整个commit
撤销 git commit --amend_撤销git commit --amend-CSDN博客
———————————————————————————————————————————
问题:git stash pop之后,git stash的文件不见了?
git stash list 查看stash暂存的地方
git checkout . 还原工作区(这是关键)
git stash pop