该博文完全参考郭霖的《第一行代码》
安装Git
Ubuntu系统:
只需要打开shell界面,并输入:
sudo apt-get install git-core
按下回车后输入密码,即可完成Git的安装。
Windows系统:
先下载Git安装包,下载地址:https://git-for-windows.github.io/,下载完成后点击安装包进行安装,之后一直点击“下一步”就可以完成安装。
创建代码仓库
- 在“开始”里面找到并打开Git Bash。
- 配置下你的身份,这样在提交代码时Git就知道是谁提交的,命令如下:
git config --global user.name "zy" git config --global user.email "zy@gmail.com"
- 使用同样的命令查看是否配置成功
git config --global user.name git config --global user.email
- 开始创建本地代码仓库,先进入相应的工程项目根目录下
cd c: cd Pro/HelloWorld
然后完成创建本地代码仓库的操作
git init
创建完成后,根目录下会生成一个隐藏的.git文件夹(产生该文件夹就说明本地代码仓库创建成功),可以通过ls -al命令查看。
ls -al
如果项删除本地仓库,只需要删除这个文件夹就行。
提交本地代码
只需要用到add和commit命令就可以了。add用于把想要提交的代码先添加进来,而commit则是真正的去执行提交操作
git add helloworld.c //添加单个文件 git add . //添加项目根目录下所有文件 git commit -m "First commit" //commit命令后面一定要通过-m参数来加上提交的描述信息
忽略文件
Git提供了一种可配性很强的机制来允许用户将指定的文件或目录排除在版本控制之外,它会检查代码仓库的目录下是否存在一个名为.gitignore文件,如果存在的话,就去一行一行读取这个文件中的内容,并把指定的文件或目录排除在版本控制之外。比如:
*.iml //任意以.iml结尾的文件 /build //build文件夹 .gradle //.gradle文件 /.idea/workspace.xml //.idea文件夹中的workspace.xml文件
然后提交即可将上述文件或文件夹排除在版本控制之外
git add . git commit -m "First commit"
查看修改内容
使用Git查看上次提交后文件修改内容,status命令会显示出所有自上次提交后所有有变化的文件
git status
使用diff命令可以查看到所有文件的更改内容
git diff
git diff /src/hello.c //只查看hello.c这个文件的更改内容
撤销未提交的更改
只要代码还未提交,所有修改内容都是可以撤销的。
- 当未执行过add命令时,可以使用checkout命令来撤销修改内容
git checkout /src/hello.c //这个命令执行后,我们对hello.c这个文件所做的一切修改就都被撤销了
- 当文件执行过add命令时,上述方式就无法撤销其修改内容,这个时候我们需要使用reset命令取消添加,然后再使用checkout命令来撤销修改内容
git reset HEAD /src/hello.c git checkout /src/hello.c
查看提交记录
使用log命令查看历史提交信息,每次提交记录都会包含提交id、提交人、提交日期以及提交描述这4个信息
git log
当提交记录非常多的时候,如果我们只想查看其中一条记录,可以在命令中指定该记录的id,并加上-1参数表示我们只想查看一条记录
git log 1fa38afdj305fgjlj757 -1
如果想查看这条提交记录具体修改了什么内容,可以在命令中加入-p参数
git log 1fa38afdj305fgjlj757 -1 -p
分支的用法
查看当前的版本库中有哪些分支,前面带有"*"的分支代表当前分支
git branch
创建新的分支
git branch version1.0
切换分支
git checkout version1.0
把version1.0分支上的修改合并到master上
git checkout master git merge version1.0
删除分支
git branch -D version1.0
与远程版本库协作
将版本库中的代码下载到本地
git clone https://github.com/example/test.git //需要远程版本库的Git地址
使用push命令将本地修改的内容同步到远程版本库上,其中origin部分指定的是远程版本库地址,master部分指定的是同步到远程版本库的哪一个分支上
git push origin master
将远程版本库的修改同步到本地,可以使用fetch和pull命令
git fetch origin master //将远程版本库的代码同步到本地,不过同步下来的代码并不会合并到任何分支上,而是会存放到一个origin/master 分支上 git diff origin/master //我们可以使用diff命令查看远程版本库到底修改了哪些东西 git merge origin/master //然后调用merge命令将origin/master分支上的修改合并到本地主分支上
git pull origin master //pull命令则是将fetch和merge这两个命令放在一起执行,它可以从远程版本库上获取最新的代码并且合并到本地