Git快速使用技巧
学习参考:廖雪峰的git教程
日期:2019/03/12
1. 基本使用
打开目标目录,克隆 repository: git clone https://github.com/***
初始化一个仓库:git init
保存工作区修改(添加全部文件):git add .
提交工作区修改:git commit -m "message"
查看工作区状态:git status
查看文件的修改内容:git diff readme.txt
2. 分支管理
创建分支:git branch [分支名]
查看分支:git branch
切换分支:git checkout [分支名]
or git switch [分支名]
创建并切换分支:git checkout -b [分支名]
or git switch -c [分支名]
将当前A分支合并到当前分支:git merge A
使用 --no-ff
普通模式合并:git merge --no-ff -m "message" dev
删除分支:git checkout -d [分支名]
or git branch -d [分支名]
查看分支合并图:git log --graph
保存当前进度:git stash
(具体)
恢复并删除之前stash进度:git stash pop
把某修改复制到当前分支:git cherry-pick [commit id]
3. 远程仓库管理
查看远程信息:git remote
或 git remote -v
指定本地dev分支链接远程dev分支:git branch --set-upstream-to=origin/dev dev
push推送远程仓库时,若推送到默认master分支:
1 | git push origin master |
若选择分支推送:git push origin [本地分支]:[远程分支]
,如
1 | git push origin phone:phone |
关联远程版本库 (参考):
1 | git remote add origin git@github.com:LaplaceJack/test.git |
远程分支:
1 | git checkout -b dev origin # 创建远程分支到本地 |
git SSH key配置方法:点击链接
4. 版本回退
查看提交历史:
1 | git log |
查看命令历史:git reflog
回退到之前版本/用本地仓库内容覆盖暂存区(关于版本工作区和暂存区的撤销修改):
1 | git reset --hard HEAD |
清空工作区的修改(关于 git stash):
1 | 清空暂存区的修改(未git add前) |
查看工作区和版本库之间的文件区别:git diff HEAD -- readme.txt
5. 全局配置
查看配置:git config --list
配置用户名:git config --global user.name [username]
配置用户邮箱:git config --global user.email [user_email]
autocrlf
问题修改:git config --global core.autocrlf false
配置别名:git config --global alias.last 'log -1'
别名对应文件:.git/config
6. 整理
把提交历史整理成一条直线:git rebase
查看标签:git tag
创建标签:git tag [tagname]
或 git tag [tagname] [commit id]
创建标签同时添加说明:git tag -a [tagname] -m "blalalalala"
推送标签:git push origin [tagname]
或 git push origin --tags
删除本地标签:git tag -d [tagname]
删除远程标签:git push origin :ref/tags/[tagname]
7. 使用.gitignore忽略提交
创建一个文件,文件名为:.gitignore. (前后都有一个点。保存之后系统会自动重命名为.gitignore 。这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中。
常用的规则:
/mtk/
:过滤整个文件夹*.zip
:过滤所有.zip文件/mtk/do.c
:过滤某个具体文件# 此为注释
:注释!lib.a
:lib.a 除外
忽略.gitignore规则强制添加:git add -f app.class
无法添加文件时寻找冲突的规则:git check-ignore -v app.class
8. 概念
暂存区的概念(stage):
团队分支策略:
9. 其他
git cheet单:
https://gitee.com/liaoxuefeng/learn-java/raw/master/teach/git-cheatsheet.pdf