git命令提交代码:
------------------------------------------ 提交代码正确姿势开始线-----------------------------------------------------------------------
第一步 保存修改到缓存中(git status 可选)
git status 查看修改
git stash 压栈(将修改代码保存至缓存中)
第二步 更新代码
git pull --rebase 强制更新(注意不是git pull)
第三步 出栈,合并代码(会自动合并,如有冲突需手动解决)
git stash pop 出栈 (将修改代码从至缓存中取出,有冲突需解决冲突)
第四步 提交代码到本地仓库 (git add . 和 git add -p选其一)
git add . 全部添加
git add -p 只添加修改(可通过Y/N选择是否需要添加)
git commit -m "提交注释" 提交代码到本地仓库
第五步:查看version control的log,检查提交的代码
第六步 push代码至远程仓库
git push 提交到远程仓库
提交完成
如果在git push的时候,提交不上去显示有人提交了代码,请使用
git reset HEAD~ 撤回最近commit提交(如需撤回指定commit使用 git reset --hard [NO])
回到第一步提交
------------------------------------------ 提交代码正确姿势结束线-----------------------------------------------------------------------
如需撤回远程提交
git revert [NO] 撤销远程库提交,"[NO]"为提交的版本号,此操作会丢失本次push的所有提交,慎用
其它常用命令:
git stash clear 清空栈
git stash list 查看缓存栈
git config --global credential.helper store 永久保存git凭证
git config --global user.email "邮箱地址" 设置邮箱
git config --global user.name "ZhangSan" 设置姓名
如有配置多个user name,使用
git config --replace-all user.name "ZhangSan" 全部替换user.name
git checkout master 切到master分支
git checkout dev 切到dev分支
git checkout -b test 新建test分支
git merge master 假设当前在dev分支上面,把master分支上的修改同步到dev分支上
git clone XXX 克隆代码
git init 初始化仓库
git命令进阶
#### 按提交记录建分支(比如出了生产事故,新的代码不需要上生产,需从上生产时候的版本开始修复BUG)
git checkout 提交记录号
git checkout -b 分支名
git add .
git commit -m ""
git push --set-upstream origin "注释"
git merge 合并代码
#### 添加子模块
git submodule add <url> <path> url为子模块的路径,path为该子模块存储的目录路径。执行成功后,git status会看到项目中修改了.gitmodules,并增加了一个新文件夹
git submodule init
git submodule update
git rm --cached cmbcar-b-contracts 删除子模块
- 修改用户名
$ git config --global user.name "xxx"
- 有时候可能修改不成功,使用replace代替全部
$ git config --replace-all user.name "XXX"
- 有需求需要修改代码,更新代码
git pull --rebase
完成修改代码后步骤
git status
git stash
git pull --rebase
git stash pop
解决冲突
git add .
git commit - m "修改描述"
查看提交日志
gradle check
gradle test
git push
- 撤回最近commit提交
git reset HEAD~
- 回滚远程提交,329515为提交序号
git revert 329515
- 强制提交,忽略gradle test
git push with --no-verify
- 切换到分支
git checkout master/branch
- 新建新建test分支
git checkout -b test
- 删除test分支
git checkout -d test
- 假设当前在test分支上面,把master分支上的修改同步到test分支上
git merge master