Git常见问题整理

Git 常见问题整理

修改 commit 的注释

  • pick:保留该 commit(缩写:p)
  • reword:保留该 commit,但我需要修改该 commit 的注释(缩写:r)
  • edit:保留该 commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)
  • squash:将该 commit 和前一个 commit 合并(缩写:s)
  • fixup:将该 commit 和前一个 commit 合并,但我不要保留该提交的注释信息(缩写:f)
  • exec:执行 shell 命令(缩写:x)
  • drop:我要丢弃该 commit(缩写:d)
最新的一次提交
1
2
3
git commit --amend 
or
git commit --amend --message="update msg" --author="chenkaixin12121@163.com"
修改历史提交
1
2
3
4
5
# 列出你最近的 3 个 commit
git rebase -i HEAD~3
# 将对应的 pick 改为 e,保存并退出,重复执行以下命令,也可执行路过或退出 rebase,git rebase --skip、git rebase --abort
git commit --amend --message="update msg"
git rebase --continue
合并历史提交
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 查看提交记录
git log --oneline
# 列出从 startpoint 到 endpoint 的多个 commit,前开后闭
# 如果有想合并到第一个 commit 的需求,使用 git rebase -i --root
git rebase -i be3ae5dc b16b3917
# 在文本编辑器中,你会看到这样的内容(commit 的哈希值和消息会有所不同):
pick 1fc6c95 do something
pick 6b2481b do something else
pick dd1475d do a third thing
# 将你想要合并到前一个 commit 的 pick 改为 squash 或者 s。例如:
pick 1fc6c95 do something
s 6b2481b do something else
s dd1475d do a third thing
# 保存并关闭编辑器后 Git 会打开另一个编辑器,让你修改新的 commit 消息。它会包含你刚才合并的所有 commit 的消息。你可以编辑这个消息,然后保存并关闭编辑器
# 此时查询提交记录已经合并了,如果你已经把你的 commit 推送到了远程仓库,就需要用 git push -f 命令来强制推送

更新 .gitignore 后如何提交

  1. 清空缓存,git rm -r --cached .,-f 强制删除
  2. 重新提交,git add .git commit -m "update .gitignore"git push

暂存文件

1
2
3
4
5
6
7
8
9
10
11
12
# 将当前的未提交更改(已经添加到暂存区和工作区的更改)保存到一个新的 stash 中,并附带一个描述信息。这将让你的工作区回到最后一次 commit 的状态。
git stash save "message"
# 列出所有的 stash。
git stash list
# 应用指定的 stash 到当前的工作区,但是不删除这个 stash。这里的 n 是你在 git stash list 命令中看到的编号。
git stash apply stash@{n}
# 应用指定的 stash 到当前的工作区,并删除这个 stash。
git stash pop stash@{n}
# 删除指定的 stash。
git stash drop stash@{n}
# 删除所有的 stash。
git stash clear

将已经忽略的文件加入版本控制

1
git add -f D:\project\activiti-workflow\src\main\resources\static\bpmnjs\dist

第一次提交

1
2
3
4
5
git init
git add .
git commit -am 'init'
git remote add origin https://github.com/chenkaixin12121/doublemint-cloud.git
git push -u origin master

修改邮箱

1
2
git config --global user.email "chenkaixin12121@163.com"
git config --global user.email

配置代理

1
2
git config --global http.proxy http://127.0.0.1:1080
git config --global https.proxy https://127.0.0.1:1080

git 生成 ssh key 并配置到 GitLab

1
2
3
git config --global --list
git config --global user.name "chenkaixin12121"
git config --global user.email "chenkaixin12121@163.com"
  1. 控制台输入命令 ssh-keygen -t rsa -C 'chenkaixin12121@163.com'
  2. 提示输入 rsa 文件保存位置及密码,这里使用默认保存位置并且不设置密码(设置密码后每次拉取代码都需要输入密码)
  3. 打开并复制内容 rsa文件地址/.ssh/id_rsa.pub
  4. 打开 GabLab,用户设置 -> SSH密钥 -> 添加密钥并设置过期时间即可