一、关于Git
官方介绍:Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
创造者:Linus Torvalds。
创造Git的动机:更好地管理Linux内核。
二、Git版本控制的笔记(常用命令)
1、配置提交者的身份信息(可以让别人知道是谁提交了代码)
git config --global user.name "your name (written by you)"
git config --global user.email "your email (written by you)"
2、查看自己的身份信息
git config --global user.name
git config --global user.email
3、为xxx项目创建一个本地代码仓库
第一步:进入xxx项目路径
第二步:在该路径下输入git init
第三步:查看仓库是否创建完成,可以通过ls -al命令查看是否有.git目录,有就是创建成功了
4、删除xxx项目的本地代码仓库
直接在xxx路径下删除.git目录
5、添加即将提交的xxx项目代码
第一种(单文件方式):git add 文件名
第二种(全部文件方式):git add .
第三种(全部文件方式但部分文件或路径不想提交):在xxx项目下添加.gitignore文件,该文件中加入不想提交的文件或路径,然后执行git add .
6、正式提交(描述信息必须要填)
git commit -m "提交的描述信息"
7、查看提交记录
查看全部提交记录:git log
查看单个提交记录:git log 记录id
查看最新n次提交记录:git log -n
8、commit后查看修改过的文件内容(不要一commit就查看,这样是察觉不出的;commit后修改过文件调用以下两个命令才有效)
文件层面:git status
文件内容层面:git diff
具体文件(假设是"a.java"这个文件)内容层面:git diff a.java
9、撤销未提交的修改(只适用于没有被执行过add命令的文件)
git checkout 文件名
10、撤销未提交的修改(强制撤销)(其中的"HEAD"我也不知道是啥意思,懂的告诉请我一下)
git reset HEAD 文件名
11、创建一个分支
git branch 分支名
12、切换到该分支v1(假设分支v1已经创建好)
git checkout v1
13、如果切换分支的时候(例如,执行git checkout master)出现这个错误:Your local changes to the following files would be overwritten by checkout Please commit your changes or stash them before you switch branches,请参考这篇博客。
14、合并分支
第一步:切换回master,执行git checkout master
第二步:执行git merge v1(假设分支v1存在)
15、删除分支
git branch -D v1(假设分支v1存在)
16、和远程版本仓库协作
假设https://github.com/example/xxx.git是远程版本仓库
下载仓库到本地:git clone https://github.com/example/xxx.git
本地上进行了修改和提交,同步到这份远程版本仓库:git push origin master(origin部分指远程版本仓库地址,master部分指同步到哪个分支)
远程版本仓库的修改同步到本地(第一种方式):
1.git fetch origin master(同步下来的代码不会合并到任何分支上,而是会存放到origin/master分支)
2.通过diff查看远程版本仓库修改内容:git diff origin/master
3.调用merge命令将origin/master分支的修改合并到主分支:git merge origin/master
远程版本仓库的修改同步到本地(第二种方式):
git pull origin master(pull命令≈fetch命令+merge命令)
三、参考资料
1、Git
3、郭霖,第一行代码Android第3版