1. 全局配置
- 通过命令
git config --global <key> <value>
配置, 如git config --global autocrlf input
(core 组的core
可以省略)git config --global user.name jarvis73
(user 组的user
不可以省略)
- 或者直接向
~/.gitconfig
中写入:[core]
editor = vim
autocrlf = input
safecrlf = true
[user]
email = <address>
name = <github name>
2. 本地仓库
2.1 创建过程
- 初始化仓库
git init
- 暂存修改 a.txt
git add a.txt
- 暂存修改所有文件
git add .
- 创建提交
git commit -m "some comments"
- 创建分支
git branch <branch name>
- 切换分支
git checkout <branch name>
- 创建并切换分支
git checkout -b <branch name>
当前分支向前合并到 hotfix
git merge hotfix
, 当前分支和hotfix是父子(包含父孙)关系时, 则当前分支直接前进到hotfix; 当前分支和hotfix的第一个公共节点是二者的共同祖先时, 合并是通过考虑当前分支, hotfix, 以及二者的祖先创建了一个”三方合并”来完成的, 会创建一个当前分支和hotfix共同的子节点来表示此次合并.2.2 撤销和删除过程
删除文件此次的全部改动(未暂存)
git checkout -- <filename>
- 撤销暂存(暂存后未修改) a.txt
git reset a.txt
- 撤销所有暂存(暂存后未修改)
git reset
- 删除所有修改(包括已暂存的和未暂存的)
git checkout .
谨慎使用 - 删除分支
git branch -d <branch name>
- 撤销修改并回退到某节点(保留修改)
git reset --soft <HASH>
撤销修改并回退到某节点(删除修改)
git reset --hard <HASH>
谨慎使用2.3 其他操作
提交后, 补充修改了一些内容, 暂存, 最后补充提交
git commit --amend
- 搁置修改(用于保留下当前的修改, 并清理工作区)
git stash
- 恢复搁置的修改
git stash pop
3. 远程仓库
- 推送到远程仓库
git push origin master
, 可以简写git pull
- 从远程仓库拉取
git fetch origin master
, 可以简写为git fetch
- 从远程仓库拉取并合并到当前分支
git pull origin master
, 可以简写为git pull