logo

Notes

Quick notes / tips

RSS Feed

Git 经验

2020/02/27

初始化、添加、commit

  • git初始化:git init
  • 暂存(添加)更改
    git add -A 暂存所有变化
    git add -u 暂存被修改和被删除的文件,不包括新文件
    git add . 暂存新文件和修改的文件,不包括被删除的文件
  • 查看 commit 记录
    git log
    q 退出

撤回 commit

1. git reset

常用参数:

  • --mixed 保留更改内容,撤回commit(包括add、移动、重命名操作),reset默认参数
  • --soft 保留更改内容,撤回commit(不包括add、移动、重命名操作)
  • --hard 完全撤回(包括更改内容、add、移动、重命名操作、commit)

例如,撤回最后一次 git reset HEAD~git reset HEAD~1
后面的数字代表撤回最后第几次

2. --amend 参数

https://git-scm.com/book/zh/v2/Git-工具-重写历史

git commit --amend 连同已经暂存(add)的修改一同合并进最后一次 commit,同时可修改提交信息。 想要把新的更改也加到上一次 commit,需要先 add 修改了的文件,再执行 git commit --amend

仅合并暂存的修改但不修改提交信息: git commit --amend --no-edit

git rebase -i HEAD~

合并或修改 commit

远程仓库

  • 添加仓库: git remote add name remote(name 是标签,随意设置;remote 是远程仓库地址)
  • 查看远程仓库: git remote -v
  • 删除远程仓库: git remote rm name(name是上面设置的标签)

设置代理

设置

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

检查

git config --global --get http.proxy
git config --global --get https.proxy

取消

git config --global --unset http.proxy
git config --global --unset https.proxy

克隆有子模块 (submodule) 的仓库

克隆时带上参数 –recursive

git clone --recursive url

若已经 clone 但忘记包含子模块,可执行:

git submodule update --init

多行 commit 信息

git commit -m "first line" -m "second line"
CC BY-NC-SA 4.0 2021-PRESENT © Edsuns