0. 初始化
git init --bare 创建一个仓库
git clone user@host:/path/repo.git
1. Git 用户配置
1. 用户和邮箱
git config --global user.name "Example Surname"
git config --global user.email "your.email@gmail.com"
2. 设置提交的分支
simple只是将当前激活态的提交
matching则是全部提交
建议使用simple
git config --global push.default simple
3. 设置高亮
git config --global color.ui true
git config --global color.status auto
git config --global color.branch auto
4. 默认的编辑器
git config --global core.editor vim
git config --global merge.tool vimdiff
git config --global alias.d 'difftool -y'
git config --global alias.staged 'diff --cached'
git config --global alias.st 'status'
5. 设置git status时显示中文
git config --global core.quotepath false
2. 设置忽略文件
.gitignore
3. 基本操作
add rm commit branch push pull log status
4. 恢复文件
从stage阶段恢复一个文件
git reset HEAD xxx_file_
从modify恢复一个文件
git checkout -- xxx_file
git commit -m 'message'
git commit --amend -m "new message"
5. 从仓库中删除一个文件
git rm -r --cached xxxfile
git rm xxfile 二者区别
6. 远程操作
Git remote add xxx_name yyy_url
git remote rm xxx_name
Git push repo_name xxx_branch
7. 分支操作
Git branch
git checkout -b xx_branch
git branch -a // 包含远程分支
8. 分支之间的区别
Git diff master your_branch
9. 标签 tag
Git tag
git tag 1.7.1 // 创建轻量的tag
git show 1.7.1
git tag 1.6.1 -m "release 1.6.1"
git checkout <tag_name>
git push origin [tag_name]
git push origin tag <tag_name>
git tag -d <tag_name>
git push origin :refs/tags/1.6.1
10. 储藏
Git stash
git stash pop
git stash
git stash list
git stash apply stash@{0}
git stash drop stash@{0}
git stash clear
11. 通过git reset 移动HEAD指针
git reset --mixed HEAD~2
git reflog
git reset --soft HEAD~2
git reset --hard HEAD~2
12. 恢复丢失的提交
git reflog: is a mechanism to record the movements of the HEAD pointer and the branches
13. 远程分支删除
remote and local tracking branches
git branch -r // list all remote branches
git branch -d -r origin/[remote_branch] // delete remote branch from origin
git branch origin :branch_name
git push origin --delete branch_name
14. 解决冲突
git mergetool
<<<<<<< HEAD Change in the first repository
======= Change in the second repository
>>>>>>> b29196692f5ebfd10d8a9ca1911c8b08127c85f8
15. git log
git log --since=1.days --graph --pretty=format:"%cn %d-->%s"
16. git archive
git archive <COMMIT_ID> > destFile.tar.gz
将提交id为COMMIT_ID的版本提取出来,以tar.gz的格式将其保存到destFile.tar.gz中
其中COMMIT_ID可以替换为分支名,就是将当前分支的最新版本提取出来保存到目标文件