0%

About Git

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 remotegit remote -v

指定本地dev分支链接远程dev分支:git branch --set-upstream-to=origin/dev dev

push推送远程仓库时,若推送到默认master分支:

1
2
git push origin master
git push origin master -f # 强制本地分支覆盖远程分支

若选择分支推送:git push origin [本地分支]:[远程分支],如

1
git push origin phone:phone

关联远程版本库 (参考):

1
git remote add origin git@github.com:LaplaceJack/test.git

远程分支:

1
2
3
4
5
git checkout -b dev origin # 创建远程分支到本地
git push origin dev # 发布
# 设置本地分支与远程分支连接
git branch --set-upstream-to=origin/dev dev
git pull

git SSH key配置方法:点击链接



4. 版本回退

查看提交历史:

1
2
3
4
git log
git log --graph
git log --pretty=oneline
git log --graph --pretty=onrline --abbrev-commit

查看命令历史:git reflog

回退到之前版本/用本地仓库内容覆盖暂存区(关于版本工作区和暂存区的撤销修改):

1
2
3
4
git reset --hard HEAD
git reset --hard HEAD^
git reset --hard HEAD~100
git reset --hard [commit id]

清空工作区的修改(关于 git stash):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 清空暂存区的修改(未git add前)
git restore .

# 从暂存区删除文件
git rm .

# 让文件回到最近一次 git add 或 git commit 的状态,撤销没有提交的修改
git checkout -- readme.txt

# 回退版本&把把暂存区的修改回退到工作区
git reset HEAD [filename]

# 删除当前目录下的untrack文件
git clean -f

查看工作区和版本库之间的文件区别: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):
pic1
团队分支策略:
pic2

9. 其他

git cheet单:
https://gitee.com/liaoxuefeng/learn-java/raw/master/teach/git-cheatsheet.pdf