Git学习要点(团队管理)

一、Git介绍

Git的基本介绍可以查看百度百科,以下知识是个人对Git经验的简要说明,以方便帮助大家快速学习。

分布式版本控制的核心理念是“分支”和“合并”,每个开发者在本地拥有很多开发分支,最常见的一个分支可以是一个功能的开发或者一个BUG的修改,每个分支有一个独立的名称,相互之间相互独立、互不影响。当分支代码开发完成之后,需要将该分支的代码“合并”到主分支,该主分支即是软件最终的分支。需要发布的功能都需要合并到该主分支,不发布的功能或修改不用合并。

Git在Linux开发环境下一般使用命令行完成版本控制操作,在Windows环境下可以使用命令行或者图形界面(TotoiseGit)。
图形界面的话会隐藏所有的命令细节,所以建议大家学习的时候以命令为主,这样知其然并知其所以然。

二、Git配置

• (Linux) /etc/gitconfig文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 –system 选项,读写的就是这个文件
• (Linux) ~/.gitconfig文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 –global 选项,读写的就是这个文件
• 当前项目的 git 目录中的配置文件(也就是工作目录中的 .git/config 文件): 这里的配置仅仅针对当前项目有效,每一个级别的配置都会覆盖上层的相同配置,所以.git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量

用户信息设置(必须)

文本编辑器(可选,默认是vim)

差异分析工具(可选,默认是vim)

输入一次后保存用户名和密码

查看已有的配置信息

三、常用命令

 

1. (用一次) git clone
获取一份版本库的代码到本地.
eg:
git clone http://xxx.xxx.xxx/xxx.git 本地目录地址

2. (常用) git status
常用,查看当前版本库的文件状态.

3. (常用) git add
添加新文件/目录到版本库.
eg:
git add dir/
git add index.php
工作中常用的用法为
git add -A
表示将本地所有的文件添加到版本库,如果版本库的文件在本地不存在的时候,会标记为删除。

4. (很少用) git rm
删除版本库的文件/目录.
eg:
git rm dir/
git rm index.php
由于 git add -A 操作的存在,git rm反而用得较少

5. (常用) git commit
提交版本控制命令到本地版本库(注意这里提交的代码是到本地版本库,并不会到版本库服务器),这个时候git status的状态会被清空。
eg:
git commit -m “提交描述”

6. (常用) git pull/fetch
git pull 从目标版本库中拉取所有内容(版本库默认为origin,表示初始化的版本库),并会自动合并master到当前分支。
git fetch 与git pull 的区别是不会自动合并,相对来说拉取内容比较安全。
eg:
git pull/fetch 服务器名称 分支名称

7. (常用) git merge
合并指定目标分支内容到当前的分支,如果有冲突会需要手动合并,常用的合并软件是Meld,需要提前安装好,在Linux下面会自动调用Meld进行合并审查。
eg:
git merge 分支名称

8. (常用) git checkout
用于切换当前分支到本地指定的分支。
另外常加 -f 参数用于忽略本地修改并强制还原到指定分支
eg:
git checkout
git checkout 分支名称

9. (常用) git branch
创建一个新分支,新分支的代码是当前所在分支代码的一份拷贝。
另外该命令也可以用于查看本地所有分支,以及当前所在分支。
eg:
git branch 分支名称
git branch

10. (常用) git push
将本地代码推送到目标版本库服务器,也可以只推送特定分支的代码到服务器。
eg:
git push 版本库服务器名称 分支名称
git push origin master

当你学习完以上命令,你已经可以参与git项目的开发入门,需要进一步学习请阅读电子教程《pro_git_中文版本.pdf》

四、Git冲突处理

这里说明一下常见的文件内容冲突解决方案,其他冲突请百度。
1、直接编辑冲突文件
冲突的文件会内容会变成这样:
a123
<<<<<<< HEAD b789 ======= b45678910 >>>>>>> 6853e5ff961e684d3a6c02d4d06183b5ff330dcc
c
直接编辑该文件为最终需要提交的内容版本,然后使用git add标记为添加(这个时候冲突标记已接触),然后git commit即可。

2、使用图形界面解决冲突
之前我们有一个解决冲突的工具配置:
git config –global merge.tool meld
如果配置了这个,我们可以使用“git mergetool”调用该工具来手动解决冲突,
修改冲突保存后,冲突文件中的冲突标记就没有了,成了修改后的内容,一个文件的冲突编辑就完成了,
随后继续git add, git commit 即可。

3、使用TotoiseGit(For Windows)
图形界面下冲突解决方式和SVN类似,会调用图形界面来解决冲突,工具操作与方式2类似。

Leave a Reply

Your email address will not be published.