如何使用Git来进行代码版本管理

0 README


本文总结了郭霖老师在《第一行代码:android》一书中提到的版本管理工具Git的使用方法,并加入自己的理解。本文讲述了如何管理本地文件版本仓库,以及如何下载、同步和修改GitHub上的仓库。

1 准备工作

1)安装

https://gitforwindows.org/

2)进入git bash命令行

3)配置用户信息

git config --global user.name "Gao Xiang"
git config --global user.email "[email protected]"

4)测试用户信息是否添加成功

git config --global user.name
// output: 
// "Gao Xiang"


2 仓库操作 repository


仓库(repository)是文件版本管理的基本单元,存放版本管理所需的信息。所有本地提交(commit)的代码都会被提交到代码仓库,还可以再推送(push)到远程仓库。

2.1 创建仓库

将当前目录创建为仓库init

git init // 初始化.git文件


2.2 添加和提交文件到仓库

1)将本地文件添加到仓库(add

只是指明要提交的文件,需要commit命令才能真正提交

git add <File | Dir> // 添加具体文件和文件夹
git add . // 添加仓库目录下所有文件

2)提交文件(commit

git commit -m ["your description for this commit"]

3)忽略文件(.ignore

不想提交某些文件,又不希望每次指定add太麻烦时,可以使用.gitignore文件(可使用通配符),git add .命令会自动过滤其中指定的文件


2.3 查看被修改的内容

1)查看自从上次提交后哪些文件被修改了(status

git status

2)查看详细的修改内容(diff

git diff [File] // 查看所有文件或指定文件被修改的内容


2.4 撤销未提交的修改

1)对于还没有add的文件,如果想要撤销修改

git checkout <File>

2)对于已经add的文件,先取消添加,再撤销修改

git reset HEAD <File>
git checkout <File>

3)已经提交的文件,无法撤销修改

2.5 查看提交记录

使用log来查看提交记录,参数中,[id] -l(不是1,而是字母)表示只看某一条记录,-p表示查看这条记录具体修改的内容

git log // 所有提交记录,会显示每条记录的id、提交人、提交日期、提交描述
git log [id -l] [-p] // 查看某次提交的详细记录


3 分支操作 branch


分支(branch)既可以独立于主分支发展下去,又可以合并(merge)到主分支,影响主分支的内容。

默认存在的主分支为master分支,同过创建新分支,可以基于此时主分支的内容作出局部修改,而不影响主分支的进展。

比如发布某个软件的1.0版本后,创建分支备份,然后在主分支上继续开发1.1版本。突然发现1.0版本有bug,需要进行修复并重新发布。而重新发布时不应该携带1.1版本添加的代码,那么就可以在分支上基于1.0版本直接修改。这样不仅保证了重新发布的1.0版本不携带1.1版本的代码,而且通过将修复分支合并到主分支,使1.1基于的1.0版本的bug也被修复了。

1)创建分支

git branch <branch_name>

2)查看所有分支

git branch

3)切换当前所在分支

git checkout <branch_name>

4)将某个分支上修改并提交的内容合并到master分支

git checkout master // 切换到master分支
git merge <branch_name> // 合并

5)删除分支

git branch -D <branch_naem>


4 远程协作 collaborate

此处的远程以GitHub为例

1)下载远程仓库到当前目录

git clone <url>

2)本地修改和提交后,同步到远程仓库

下载远程仓库时,本地目录会保存远程仓库信息,origin变量指定的就是远程仓库的地址

git push origin master // 同步到远程仓库的master分支

3)远程仓库的修改同步到本地

将远程仓库通过fetch操作存放到本地origin/master分支,需要merge操作才能合并到本地分支

git fetch origin master     // 下载到`origin/master`分支
git diff origin/master      // 查看修改
git merge origin/master     // 合并到本地主分支

或者

git pull origin master      // 相当于先fetch,再merge


参考资料


[1] 第一行代码:Android,郭霖.https://book.douban.com/subject/26915433/

猜你喜欢

转载自blog.csdn.net/weixin_40255793/article/details/80062673
今日推荐