GuoXin Li's Blog

git frequently used actions

字数统计: 479阅读时长: 1 min
2021/05/27 Share

git 记要

image-20210527110137668

git add , git checkout

git add 后修改文件,可以再使用 git checkout 使得 work dir 返回到 stage 区的刚刚 git add 的状态

image-20210527110510521

保存 git commit -m ’xxx’ , git commit —amend

将 stage 区文件提交到 history 区,进入history 后的修改将永远不会丢失。

反悔之小悔 git reset

git reset a.txt 可以将已经使用 git add 命令将其添加到 stage 区的 a.txt 还原到 work dir。

从 work dir 区提交到 history区

git add . 然后使用 git commit -m ‘xxxx’

简略写法:git commit -a

反悔之大悔 git checkout HEAD .

使用 git checkout HEAD . 可以恢复文件到最初的未修改的状态。

如果想要恢复到任何一个状态,可以使用 git checkout hashvalue。

风险:高风险,这个操作会将 work dir 的数据恢复指定成为 commit 的样子,且会删除 stage 中的数据,无法恢复。

合并多个 commit,git reset hashxxx

如果有多个 commit,可以通过 git reset 来将它们合并为一个 commit 。

使用 git reset hashvaluexxx ,相当于 HEAD 移动到了某一个 commit,且不会修改 work dir 中的数据,所以只要再次 git add. 和 git commit 之后就相当于把之前的多个 commit 合并到了一个。

这样之后之前所有的 commit 都无法看到了,可以通过使用 git reflog 来查看之前所有的历史记录。

将本地原有仓库添加到远程已有仓库时出现的问题

如果本地和远程仓库有不相关的历史记录,无法合并,如:

image-20210907002051867

可以使用:

git pull origin main --allow-unrelated-histories 即,添加--allow-unrelated-histories 参数

  • 然后会自动进入 vim ,编辑完冲突部分,选择该留下哪些,再 :wq 保存

  • 然后使用 git add xxx 添加修改文件,使用 git commit xxx 添加commit

  • 再次使用 git push -u origin main 将本地仓库与远程仓库进行合并即可。
CATALOG
  1. 1. git 记要
    1. 1.1. git add , git checkout
    2. 1.2. 保存 git commit -m ’xxx’ , git commit —amend
    3. 1.3. 反悔之小悔 git reset
    4. 1.4. 从 work dir 区提交到 history区
    5. 1.5. 反悔之大悔 git checkout HEAD .
    6. 1.6. 合并多个 commit,git reset hashxxx
    7. 1.7. 将本地原有仓库添加到远程已有仓库时出现的问题