git的基本使用
Git是什么
分布式版本控制系统的安全性要高很多,因为每个开发人员电脑里都有完整的版本库,某一个开发人员的电脑坏掉了不要紧,随便从其他开发人员那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有开发人员都没法工作。
Gt是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。
G是Linus Torvalds为了帮助管理 Linux内核开发而开发的一个开放源码的版本控制软件。 Torvalds开始着手开发Gt是为了作为一种过渡方来替代Bitkeeper,后者之前一直是Lnux内核开发人员在全球使用的主要源代码工具。
尽管最初Git的开发是为了辅助Linux内核开发的过程,但是已经发现在很多其他自由软件项目中也使用了Git。
GIT
安装可以到官网下载对应系统的安装包进行安装。然后正常的安装流程即可。
安装后的配置
通过右键即可看到Git Bash Here
,即可打开git bash工具。
通过输入git --version
也可以看到版本号。
1 | git config --global user.name "Your Name" |
安装完成后需要设置用户信息,因为Git是分布式版本控制系统,所以每一台电脑注册用户信息(名称和Emai地址)。
值得注意的是, git config命令的 global参数,表示当前这台电脑上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Emai地址。
1 | git config user.name '你的名字' |
查看配置
1 | # 打印所有config |
工作区、暂存区和版本库
工作区
当前电脑里能看到的目录
暂存区
英文交stage或index。一般存放在
.git
目录下的index文件(.git/index
)中,所以我们把暂存区有时也叫作索引(index)版本库
工作区有一个隐藏目录
.git
,这个不算工作区,而是Git的版本库。
Git常见的操作
clone
1
git clone Repo
添加到版本库
1
git add fileName
需要进入到版本库目录才可以使用此命令。
1
2
3
4
5
6
7
8
9
10
11
12
13
14# 添加单个文件
git add 1.txt
# 添加多个文件
git add 2.txt 3.txt
# 添加整个目录
git add ./a
# 添加多个目录
git add ./b ./c
# 添加所有文件
git add .将添加的文件提交到版本库
1
git commit -m 'message' [file Name]
git commit
命令后可以添加文件名称,表示只提交这个文件,但一般不会跟文件名称,表示全部提交。也可以直接使用
git commit
命令,会调用出默认的编辑器去编辑信息。修改默认的编辑器以vacode为例(Windows)。首先在命令行输入
code
,如果能正常出现vscode编辑器,那么直接输入以下命令即可。1
git config core.editor notepad
如果不能出现vscode编辑器,那么将VSCode目录下的
bin
目录添加到环境变量,然后运行上面的命令即可。MAC及Linux环境下配置。
1
2
3
4
5
6
7
8
9# 添加 vscode 编辑器 - mac
# 通过 vim 打开环境变量配置文件
vim ~/.bash_profile
# 添加环境变量
export PATH=/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin:$PATH
# 保存退出
source ~/.bash_profile
# 测试:在终端中直接通过命令 code 调用 vscode
git config --global core.editor "code --wait"日志
1
2// 完整格式
git log1
2// 简要格式(单行)
git log --oneline1
2// graph模式
git log --all --graph修复上次提交
1
git commit --amend -m 提交
将本地版本库Push到远程库中
1
git push URL master
从远程库更新到本地库
1
git pull
查看上次修改的信息
1
git status
查看执行git status命令结果的详情信息
1
git diff
git diff
命令显示已写入缓存与已修改但尚未写入缓存的改动的区别。查看尚未缓存的改动
git dff
查看已缓存的改动
git diff --cached
查看已缓存的与未缓存的所有改动
git diff HEAD
显示摘要而非整个dif
git diff --stat
Git分支管理
每一种版本控制系统都以某种形式支持分支。使用分支意味着可以从开发主线上分离开来,然后在不影响主线的同时继续工作。
有人把Git的分支模型称为"必杀技特性",而正是因为它,将Git从版本控制系统家族里区分出来。
创建分支
1
git branch name
如果只输入
git branch
那么将显示当前的分支,有标识的表示当前正在使用的分支。切换分支
1
git checkout name
合并分支
1
2
3
4# 切换到主分支
git checkout master
# 将某个分支合并到master分支
git merge name如果两个分支同一文件同一行都发生了修改,那么将不会自动合并分支,而是需要处理冲突。
删除分支
1
git branch -d dev
推送分支时,删除多余分支
1
git push origin --delete branchName
合并分支遇到冲突
可以通过VSCODE中的插件进行快速的合并。合并完成后通过git add
命令告诉git冲突已经解决。