renjie-run / blog

Personal Blog
2 stars 0 forks source link

Git 常用命令 #30

Open renjie-run opened 3 years ago

renjie-run commented 3 years ago

常用 commit 格式

基础操作

实现多行 commit

在多行 commit 信息编辑完成之后,再追加引号回车即可。具体多行 commit 的生成方式如下:

git commit -m '1.xxx.
-> 2.xxx.'

修改最后一次提交的 commit 信息

执行如下命令,即可进入最后一条 commit 信息修改的界面。

git commit --amend

清除本地修改

删除指定的文件修改

git checkout --指定文件

删除所有修改

git checkout -f

合并多个 commit 为一条

情形一:已经存在一条 commit,新修改的代码提交后希望只看到一条 commit

代码修改完成后,依次执行以下命令

git add .
git commit --amend 

image

如图,以上命令执行完成后,会出现 commit 相关信息。此时,如果不修改 commit 信息,直接 shift + : ,然后在输入框里输入 q 回车即可。如果修改 commit 信息,修改完成后,在输入框里输入 wq 回车即可完成修改。这样的话,commit 记录仍然只是一条。

情形二:已经存在多条 commit,并且没有要修改的代码了

方式一: 这种方式是使用 reset 命令来实现。

  1. 首先,需要使用 git reset head~xxx 命令来清除这些 commit。例如,有 3 条 commit,可执行 git reset head~3,一次性清除这些 commit,也可以执行 3 次 git reset head~1 命令依次清除。

  2. 然后按照 情形一 的步骤进行操作,完成新的一条新的 commit 的创建。

方式二: 这种命令使用 rebase 命令来实现。

  1. 通过 git log 命令查看当前分支的提交情况。 image

  2. 通过 git rebase -i <commit_id> 开始进行 commit 的合并,其中 commit_id 是合并起始的 commit 的 id(并不会合并该条 commit)。这里也可以使用 git rebase -i HEAD~xxx 的命令来进行合并,HEAD 后面跟的是要合并从 HEAD 版本开始的 1-xxx 的 commit 信息。 image

  3. 将第二步中的第二行的 pick 修改为 squash 或者 s,之后保存并关闭文本编辑窗口即可。这里的原理就是将 squash 项的 commit 都合并到 pick 项的 commit 上。 image

  4. 第三步执行完成后,如果有冲突需要解决冲突,然后继续合并,当然也可以放弃合并。commit合并完成后,会进入 commit 信息合并编辑页面,在该页面编辑好合并后的 commit 信息后保存推出即可。 解决冲突,继续合并

    git add .
    git rebase --continue

放弃合并

git rebase --abort

commit 信息合并编辑页面 image

合并成功 image

再次使用 git log 查看提交记录,里面就只有最初提交的 commit 和 合并后的 commit 信息了。

修改分支名称

例如,要修改的分支名称为 oldName,新的分支名称为 oldName。

仅修改本地分支名称

git branch -m oldName newName

修改本地分支名称,同时更新远程仓库已经提交的这个分支的名称

  1. 第一步,更新对应的本地分支名称

    git branch -m oldName newName
  2. 第二步,删除远程的这个分支

    git push --delete origin oldName
  3. 上传新命名的分支

    git push origin newName
  4. 将本地的这个分支与远程分支相关联

    git branch --set-upstream-to origin/newName

将本地仓库与远程仓库相关联

git remote add origin 远程仓库地址