Git 常用操作
配置
官方文档:https://git-scm.com/docs/git-config
级别 | 参数值 | 配置文件 | 优先级 |
---|---|---|---|
仓库 | --local 默认 | 当前项目的 .git/config | ⭐⭐⭐ |
用户 | --global | HOME/.gitconfig ,HOME 为系统环境变量中的值 | ⭐⭐ |
系统 | --system | Git 安装目录下 \etc\gitconfig | ⭐ |
优先级高的配置会覆盖优先级低的配置生效
查看
git config --local -l //仓库级别配置文件
git config --global -l //用户级别配置文件
git config --system --list //系统级别配置文件
添加或修改
指令结构:git config --<level> <section.key> <value>
# --local 是默认参数
$ git config user.name "testuser"
$ git config --local user.name "testuser"
$ git config --global http.proxy http://127.0.0.1:1080
$ git config --global https.proxy http://127.0.0.1:1080
$ git config --system user.email testuser@126.com
删除
指令结构:git config --<level> --unset <section.key>
$ git config --global --unset http.proxy
提交(Commit)
修改注释
修改还未推送至远程的,本地已经提交的注释
$ git commit --amend
合并提交
合并本地分支的若干次历史提交
$ git rebase -i HEAD~5
# 或者
$ git rebase -i b0b2b2b
# 合并 b0b2b2b 之前的所有提交,b0b2b2b本身不合并
rebase 指令后会弹出编辑器,此时来决定如何合并历史提交
排在上面的是最新提交的
pick fc46668 finish2
pick dda4cfd temp
pick ef867e6 temp
pick b0b2b2b finish1
pick b29cc3d temp
# Rebase ba36014…b29cc3d onto b0b2b2b (5 commands)
#
# Commands:
# p, pick = use commit
# s, squash = use commit, but meld into previous commit
# … …
在编辑器中 pick 开头的提交就是我们要保留的,对于不想保留的提交可以把 pick 改为 s
比如下面
pick fc46668 finish2
s dda4cfd temp
s ef867e6 temp
pick b0b2b2b finish1
s b29cc3d temp
就会把所有的 s 的提交合并入上方最近的 pick 提交中,也就变成下面这样
commit fc46668 finish2 temp temp
commit b0b2b2b finish1 temp
注意:最近一次提交的(最上方)的 pick 一定要保留,(如果它也变成 s 的话,请问它要合并到哪次提交中呢)
这部操作后还会弹出编辑器,选择合并提交后的注释,随意更改即可
分支(Branch)
查看
查看本地有哪些分支
$ git branch
创建
本地创建一个新分支,但是不切换过去
$ git branch <branch_name>
本地创建一个新分支,然后切换过去
$ git checkout -b <branch_name>
删除
删除本地分支
$ git branch -d <branch_name>
$ git branch -D <branch_name>
删除远程分支
$ git push origin --delete <branch_name>
切换
切换本地分支
$ git checkout <branch_name>
将远程分支代码拉过来与本地新建的一个分支建立映射,然后本地切换到这个新建的分支
$ git checkout -b <new_local_branch_name> origin/<remote_branch_name>
映射(关联)
查看本地分支和远程分支的映射关系
$ git branch -vv
本地分支与远程分支关联
$ git branch --set-upstream-to origin/<remote_branch_name> <local_branch_name>
重命名
重命名本地分支
# 不是重命名当前分支
$ git branch -m <oldname> <newname>
# 重命名当前分支
$ git branch -m <newname>
跟踪
查看
查看当前分支下由 git
跟踪的所有文件
$ git ls-files
取消
想要 git
不再追踪某个文件或者目录的更改
# 列举一下所有会取消跟踪的文件
$ git rm -r -n --cached <file>/<folder>
# 取消跟踪上一步列举的所有文件
$ git rm -r --cached <filename>/<foldername>
添加
希望 git
去追踪某个文件或者目录的更改
$ git add <filename>