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 中的同名变量

用户信息设置(必须)
git config –global user.name “自己的账号名字”
git config –global user.email 自己的账号邮箱

文本编辑器(可选,默认是vim)
git config –global core.editor gedit

差异分析工具(可选,默认是vim)
git config –global merge.tool meld

输入一次后保存用户名和密码
git config –global credential.helper store

查看已有的配置信息
git config –list

三、常用命令

 

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.