Git是开发必备工具,由于它的分布式设计,相比于SVN等有很多优点,本文介绍Git相关知识点,及Git相关工具网站。
config的用户配置:
1
2
3
4
5
6
|
git config --global user.name=XXXX
git config --global user.email=XXXXX@XXX
git config --global //本用户
git config --local //只有本仓库这么配置
git config --system //所有用户都这么配置,基本不用,权限太大
|
显示config的配置:
1
2
3
4
|
git config --list --local
git config --list --global
git config --list --system
git config --list
|
一段基本的提交流程:
1
2
3
4
5
|
touch aaa.md
git add . #将所有修改提交到暂存区,也可以指定要暂存的项目
git commit -m "xxxxxxxxxx" #提交,之后暂存区清空
#如果配置了远程仓库
git push remote-repo-name branch #推送到指定仓库的指定分支上
|
git
储藏
1
2
3
4
5
6
7
|
git stash #通过该命令将工作区和暂存区中的修改保存到一个储藏栈(stash stack)中
#我们可以通过下面的命令,把缓存的修改恢复到工作区中,这个非常适合突然要修改一个已经提交的代码,而手头的任务又做了一半的情况
git stash pop
#另外,通过下面的命令可以查看储藏堆栈中都存了多少修改
git stash list
#看到列表后,要恢复指定的内容,可以执行下面的命令
git stash pop stash@{1} #数字就对应了在堆栈中的位置
|
我们知道 git
分为三个区域,分别是工作区、暂存区、和仓库,这里就涉及到几个有用的操作了:
1
2
3
4
5
6
7
8
9
10
|
#想要将暂存区中的变更撤销,可以使用下面的命令,回退到上一个最新的提交
git reset HEAD somefiles #可以指定特定的文件
#回退到指定版本
git reset xxxxx somefiles
#--hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交
git reset --hard origin/master #将本地的状态回退到和远程的一样
git reset --hard HEAD~3 #回退上上上一个版本
git reset --hard xxxxxx #回退到某个版本回退点之前的所有信息
#可以撤销merge
git reset --merge
|
分支管理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#创建分支
git branch xxxx #将创建xxxx分支
#删除分支
git branch -d xxxx
#显示本地所有分支
git branch -l
#显示远程跟踪分支
git branch -r
#切换分支
git switch xxxx
#从某个分支迁出代码
git checkout xxxx
#创建分支并切换到该分支
git checkout -b my_branch from_branch
#合并分支
git merge xxxx #切换到要合并的分支,把xxxx分支合并过来
#将指定的提交(commit)应用于其他分支
git cherry-pick xxxx #切换到要合并的分支,把xxxx提交合并过来
|
当我们做了创建了几个分支,分别修改并合并提交后,查看 log
,也许是下面的样子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
git log --graph --oneline
* 37ba1ea (HEAD -> master) Merge branch 'futureC' another futureC!!
|\
| * 11d1907 (futureC) futureC first commit
* | 8a97b47 master fifth commit
* | 1edbbc3 Merge branch 'futureB' this is a new future!!
|\ \
| * | b5cfe77 (futureB) branch B first commit
| |/
* | 98f1e45 master firth commit
* | a13ae08 master third commit
|/
* 94b472e (futureA) branch second commit
* 1c86b75 branch first commit
* c4a4e81 second commit
* e1f0614 first commit
|
git log
更多实用方式,参看帮助 git log --help
。
远程库相关
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#查看本地配置的远程参数
git remote
#添加远程版本库
git remote add ssh://user@xxx.xxx.xxx.xxx:12345/xxx/xxx/blog.git #可以是其他的协议,默认端口的话可以不写端口号
#重命名
git remote rename <old> <new>
#删除
git remove xxxxx
#将远程仓库克隆到本地
git clone ssh://user@xxx.xxx.xxx.xxx:12345/xxx/xxx/blog.git #通过ssh协议
git clone file:///users/xxx/xxx.git #通过file协议
git clone https://github.com/vuejs/vue.git #通过HTTP协议
git clone /usr/local/share/xxxx.git #克隆本地仓库
#从远程仓库获取数据
git fetch xxxx #获取另一个版本库中的所有提交,fetch是单向操作,不会把本地代码上传
#利用本地分支操作别处的版本库
git fetch origin featureA:my-local-featureA #从origin版本库的featureA分支内容,并在本地创建一个分支
git checkout -b my-local-featureA origin/featureA #等价
#拉取
git pull origin master #从远程仓库的某个分支拉取代码,等价于fetch + merge
git pull origin featureA:my-local-featureA #从远程仓库的某个分支拉取代码到本地某个分支
#推送
git push origin master #将代码推送到远程仓库的某个分支
|
标签
1
2
3
4
5
6
7
|
#创建标签
git tag 1.2.3.4 master -m "xxxxxxxx" #在master分支的当前版本上创建一个标签,并加注释
#查看当前标签
git tag #全部
git tag -l pattern #通过表达模式(如:1.2.*)筛选输出
#列出历史记录中包含某个提交的所有标签
git tag --contains xxxxx
|
文章作者
Brein
上次更新
2019年4月27日 18时09分53秒
许可协议
转载本站文章请注明作者和出处 Brein's Blog,请勿用于任何商业用途