一、设置签名
作用:区分不同开发人员的身份
辨析:这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任何关系。
命令
项目级别/仓库级别:仅在当前本地库范围内有效
git config user.name tom_pro
git config user.email goodMorning_pro@atguigu.com
信息保存位置:./.git/config 文件
如何修改?
git config --global --edit
在文件里直接修改,保存退出
系统用户级别:登录当前操作系统的用户范围
git config --global user.name tom_glb
git config --global goodMorning_pro@atguigu.com
信息保存位置:~/.gitconfig 文件
级别优先级
1.就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别的签名
2.如果只有系统用户级别的签名,就以系统用户级别的签名为准
3. 二者都没有不允许
二、git pull 的作用
例子:git pull origin https://gitee.com/fangjun0486/java-books.git
当团队协作开发时,当某一成员将远程的代码库进行了修改,此时你本地的代码和远程的版本就不一致,为了得到最新的版本,就需要使用git pull
操作:
1.cd 到包含.git文件夹的目录下
2.执行 git remote add 名称 远程项目地址
3.git pull 名称 master
三、分支
查看当前分支 git status
查看所有分支 git branch -v
创建分支 git branch fenzhi1(分支名)
切换分支 git checkout fenzhi1
远程仓库只有master分支,克隆到本地,本地创建分支fenzhi1以后,只需从master切换到fenzhi1,然后执行 git push ori(之前设置好了) fenzhi1,这样远程仓库就会有fenzhi1了,并且fenzhi1和master内容一样(如果本地Fenzhi1分支进行了修改,那么push到远程后,fenzhi1和master就会内容不一样)
补充:如果克隆的话,到本地后,git status发现默认在master分支,如果想进入fenzhi1分支,只要切换就可以
分支合并
第一步:切换到接受修改的分支(被合并,增加新内容)上 git checkout [被合并分支名]
第二步:执行 merge 命令 git merge [有新内容分支名]
案例:把fenzhi1合并到master分支
1.本地切换到master分支 git checkout master
2.git merge fenzhi1
合并冲突
执行 git branch -v 可以查看所有分支的当前版本号
$ git branch -v
fenzhi1 a575541 fenzhi update1
* master 8093995 [ahead 3] master update
当两个分支版本不一样时,如果两个分支同一个文件同一个位置内容不同,一个分支合并另一个分支时就会出现合并冲突
$ git merge fenzhi1
Auto-merging a.txt
CONFLICT (content): Merge conflict in a.txt
Automatic merge failed; fix conflicts and then commit the result.
解决办法:
1.vim a.txt
hello world
kobe byrant
<<<<<<< HEAD
lebron james fangjun lala
=======
lebron james fangjun haha
>>>>>>> fenzhi1
2.删除<<<< 、=====、>>>>>所在的行
3.git add a.txt
4.git commit -m “conflit resolve”