Git代码提交和撤回

2022-08-02 14:27:37

代码提交到暂存区

# 查看工作区下各文件状态
git staus

# 提交所有文件到暂存区
git add .

# 提交单个文件到暂存区
git add [文件路径]

撤回暂存区的提交

git restore --staged [文件路径]

代码提交到版本库

git commit -m "[提交说明]"

撤回版本库的提交

git reset

当我们发现刚commit到版本库的代码有问题,想丢弃最近的一次代码提交时,可以使用git reset版本回退。

# 先git log查下提交历史
$ git log

# 找到错误提交版本的上一个版本
$ git reset [commit id] # 如:d1d6efa76f95071ed8fe18042e9380e2ac75d989

git reset执行后只会改变版本库的版本,所以工作区代码可以通过git chekout或git restore来和版本库同步。此时再git log会发现看不到被撤回的版本提交记录了,但是并不是表示已经被删除,我们通过编辑器(如pycharm)依然可以看到被回退的版本(这代表git reset撤回的版本依然可以找回)。如果再提交一次代码,此时新版本和被撤回的版本就像二叉树一样,我们只能选择其一(当然也可以通过git checkout -b创建新分支,将一边代码保存到新分支上,然后通过git merge分支合并,解决冲突的方式实现两者并存,但这样比较麻烦)。值得注意的是,虽然在新版本时编辑器依然记录被撤回的版本,但是当我们通过IDE找到撤回的版本号,再次git reset到之前被撤回的版本时,IDE并不会记录第一次撤回后新提交的版本,当然git log更找不到。如果你的git命令窗口还没关,还可以往上翻翻之前git log的记录找一找,否则就很麻烦,所以git reset是一条不太优雅的命令。

git revert

如果想撤回的代码不是最后一次提交的版本,而执行撤回的同时需要保留后续提交的版本,可以选择使用git revert。

# 撤回上次提交的代码
git revert HEAD

# 撤回上上次提交的代码
git revert HEAD"^"

# 撤回之前某个版本
git log    # 查查版本
git revert [commit id]

git revert会把当前撤回代码当作一次代码更新提交到版本库,所以git log可以查看到被撤回的版本。工作区代码也会同时更改,如果有代码冲突需要解决冲突。

代码提交到远程库

git push [远程库名] [远程分支名]

撤回远程库的代码提交

先执行【撤回版本库的提交】,然后再push到远程库

  • 作者:夕阳惜夏
  • 原文链接:https://blog.csdn.net/weixin_40283460/article/details/109683826
    更新时间:2022-08-02 14:27:37