操作系统:windows
安装:
Windows系统下安装Git,直接next就可。
git是分布式版本控制系统。
命令详解:
配置身份
git config --global user.name "Your name"
git config --global user.email "email@example.com"
注意
git config
命令的
--global
参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
创建代码仓库
git init
选择一个合适的地方,创建一个空目录
输入一些的命令
mkdir:创建一个目录
cd:找到当前目录
pwd:显示当前目录
注意:在windows系统下,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。
查看隐藏的.git文件夹
ls -al
.git目录中的文件是是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。
1、添加具体文件
git add AndroidManifest.xml
可以反复多次使用,添加多个文件。
2、添加整个目录下的文件
git add src
3、添加所有文件
git add .
git add 实际上就是把文件修改添加到暂存区。
git commit -m "First commit."
一次提交,可以提交多个文件的。
注意在commit 命令的后面我们一定要通过-m 参数来加上提交的描述信息,没有描述信息的提交被认为是不合法的。
git commit实际上就是把暂存区的所有内容提交到当前分支。
5、从工作区删除文件
rm filename
6、从版本库中删除文件
git rm filename
查看修改内容
git status
此命令命令可以让我们时刻掌握仓库当前的状态。
查看更改内容
git diff
若想查看某一个文件更改的内容,可以在后面加上文件的具体路径,如:
git diff src/com/demo/providertest/MainActivity.java
撤销未提交的修改
git checkout -- src/com/demo/providertest/MainActivity.java
注意:git checkout
-- file 命令中的--很
重要,没有--,
就变成了“切换到另一个分支”的命令。
git checkout
其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
取消添加
git reset HEAD src/com/demo/providertest/MainActivity.java
在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,
上上一个版本就是HEAD^^,当然往上100个版本写100个^
较容易数不过来,所以写成HEAD~100。
git reset
命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD
时,表示最新的版本。
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file
,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,可以使用版本回退,不过前提是没有推送到远程库。
查看提交记录
git log
当提交记录非常多的时候,如果我们只想查看其中一条记录,可以在命令中指定该记录的id(版本号),并加上-1 参数表示我们只想看到一行记录,如下所示:
git log 2e7c0547af28cc1e9f303a4a1126fddbb704281b -1
上面的id(版本号)没有必要写全,写前几位就可以,git会自己去找的,当然也不能只写一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。
git log 2e7c0547af28cc1e9f303a4a1126fddbb704281b -1 –p
下面的命令是将id(版本号)和注释显示为一行,不显示作者、提交时间等具体的内容
git log --pretty=oneline
下面的命令可以查看每一次的commit id(版本号)
git reflog
查看当前版本库当中的分支
git branch –a
git branch
命令会列出所有分支,当前分支前面会标一个*
号。
git branch versionname
如创建一个名为version1.0 的分支:
git branch version1.0
切换到分支
git checkout versionname
创建并且切换到分支
git checkout -b versionname
git checkout master
git merge versionname
若在merge后加上--no-ff
参数,表示禁用Fast forward
git branch -D versionname
关联远程库
git remote add origin git@server-name:path/repo-name.git
第一次推送master分支的所有内容
git push -u origin master
注意加上了
-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。
git clone https://github.com/exmaple/test.git
把本地修改的内容同步到远程版本库
git push origin master
其中origin 部分指定的是远程版本库的Git 地址,master 部分指定的是同步到哪一个分
支上,上述命令就完成了将本地代码同步到https://github.com/exmaple/test.git 这个版本库的
master 分支上的功能
将远程版本库上的修改同步到本地
git fetch origin master
从远程版本库上获取最新的代码并且合并到本地
git pull origin master
注意:远程库的名字就是origin
,这是Git默认的叫法。
查看分支合并图
git log --graph
推荐一个很好的git教程:
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000