Git的相关操作
1. Git储藏
- 如何进行储藏
git stash
保持所有正在追踪的文件
git stash save ‘日志信息’
(ervp2) qiaobt@yanfa-qiaobt:~/qiao/erpv2$ git stash
Saved working directory and index state WIP on qiaobt: efcce82 2
HEAD is now at efcce82 2
- 查看git储藏
git stash list
(ervp2) qiaobt@yanfa-qiaobt:~/qiao/erpv2$ git stash list
stash@{0}: WIP on qiaobt: efcce82 2
- 恢复git储藏
git stash apply # 恢复最近一次的储藏
git stash apply stash@{2} # 恢复特定时候的储藏
(ervp2) qiaobt@yanfa-qiaobt:~/qiao/erpv2$ git stash apply
On branch qiaobt
Your branch is up-to-date with 'origin/qiaobt'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: ERP2/settings.py
modified: finance/models/account_invoice.py
modified: purchase/models/purchase_order.py
modified: purchase/views.py
no changes added to commit (use "git add" and/or "git commit -a")
Git常用的命令
- git强制拉远程分支代码
git fetch
git reset --hard origin/master
- 强制推送代码到qiaobt
git push --force origin qiaobt
- 如何取消已经暂存的修改
git add *
git reset HEAD a.py
- 如何取消跟踪
git rm --cached test.py
一些略高级的Git操作
查看提交的历史信息
# 将所有的log信息放在一行进行展示
git log --oneline
# 搜索日志包含[***]的提交
git log --all --grep='***'
# 获取某个人的提交日志
git log --author = 'qiaobt'
重置一个不想要保留的提交,回滚
# 获取所有提交的历史
git reflog
# 重置到相对于的提交
git reset HEAD{2}
#或者使用这种
git reset --hard <前面的message>
查看我的分支和master的不同
git diff master ..my-branch
定制提交
# 如何编辑上次提交
git commit --amend -m '新的提交日志'
# 在上次的提交中附加一些内容,保持提交日志不变
git add . && git commit --amend --no-edit
# 空提交 可重新出发CI构建
git commit --allow-empty -m 'chore: re-trigger build'
New Add
# git commit 后想撤销
# https://www.cnblogs.com/lfxiao/p/9378763.html
写完代码后,我们一般这样
git add . //添加所有文件
git commit -m "本功能全部完成"
执行完commit后,想撤回commit,怎么办?
这样凉拌:
git reset --soft HEAD^
这样就成功的撤销了你的commit
注意,仅仅是撤回commit操作,您写的代码仍然保留。
说一下个人理解:
HEAD^的意思是上一个版本,也可以写成HEAD~1
如果你进行了2次commit,想都撤回,可以使用HEAD~2
至于这几个参数:
--mixed
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
--soft
不删除工作空间改动代码,撤销commit,不撤销git add .
--hard
删除工作空间改动代码,撤销commit,撤销git add .
注意完成这个操作后,就恢复到了上一次的commit状态。
顺便说一下,如果commit注释写错了,只是想改一下注释,只需要:
git commit --amend
此时会进入默认vim编辑器,修改注释完毕后保存就好了。
如何进行分支的改名和远程推动分支修改
- 修改分支名称:
git branch -m oldBranchName newBranchName
- 将远程分支删除
git push origin : oldBranchName
- 将改名的分支push到远端
git push origin newBranchName
- 将本地分支跟踪远程的同名分支
git push --set-upstream origin newBranchName