git的深入浅出-4、git的详细使用以及各种冲突处理

目录

 

一、恢复本地工作区

二、删除文件

三、创建一个临时暂存区(栈结构存储暂存区状态)

四、写内容到文件中echo

五、.gitignore文件

六、git的备份

八、github上ssh的使用

九、创建个人仓库

1、创建本地的远端站点remote add

2、拉去远端仓库fetch

3.合并本地和远端不一致merge

十、GitHub创建及使用分支

十一、fetch和pull的区别

十二、checkeout创建分支

十三、工作冲突

1、不同用户修改了不同文件

2、不同用户修改了不同文件

3、不同人修改了同一文件的同一个区域

4、不同人分别变更了同一文件的文件名和文件内容

5、不同人修改了同一文件的文件名


一、恢复本地工作区

重置本地工作区,同git工作区一致

二、删除文件

三、创建一个临时暂存区(栈结构存储暂存区状态)

将现在暂存区的内容放入到临时暂存区中

类似于栈的结构

又恢复回来(apply你使用完之后,stash里面还会存在这个保持的暂存状态,使用pop之后,就是直接弹出)

四、写内容到文件中echo

五、.gitignore文件

告诉git仓库,.gitignore里面包含的文件不需要加入到git仓库中

比如说GitHub上面的仓库里面就会添加

六、git的备份

git常用的传输协议

八、github上ssh的使用

建议去GitHub上看它的官方文档

在本地创建公钥和私钥

生成的公钥和私钥

进入到GitHub的个人信息里面

将我们之前创建的公钥内存张贴过来

九、创建个人仓库

创建

仓库中的功能描述

创建出来之后仓库里面会出现一个文件

1、创建本地的远端站点remote add

2、拉去远端仓库fetch

3.合并本地和远端不一致merge

不改动

通常采用缺省策略(recursive)

4、push到远端

十、GitHub创建及使用分支

在GitHub上创建分支

模拟两个人的工作

查看对应分支

切换分支

提交及push到远端,放入到对应的分支下面(由于我们已经指定了分支以及远端,所以直接push就可以了)

十一、fetch和pull的区别

1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge

git fetch origin master
git log -p master..origin/master
git merge origin/master
    以上命令的含义:
   首先从远程的origin的master主分支下载最新的版本到origin/master分支上
   然后比较本地的master分支和origin/master分支的差别
   最后进行合并

2. git pull:相当于是从远程获取最新版本并merge到本地

git pull origin master

上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些
因为在merge前,我们可以查看更新情况,然后再决定是否合并

十二、checkeout创建分支

另外一个用户拉去远端

查看多出来的分支,本地还没有,但是已经与远端的分支建立起来了连接

创建分支

十三、工作冲突

1、不同用户修改了不同文件

用户1修改一个readme.md文件

用户2 这个时候准备push的时候

首先fetch下来远端的分支

merge远端分支

保持不变

最后push到远端

2、不同用户修改了不同文件

首先用户1和用户2都从远端拉取项目

用户1先修改问index文件,并且提交上去

然后用户2修改index文件,push到远端的时候就会报错

修改办法:

用户2首先从远端fetch下来修改后的项目(可以时候push,等同于fetch+merge操作)

进行merge合并,使用路径或者唯一标识 都可以

3、不同人修改了同一文件的同一个区域

两个用户同时都更新当前的远端项目

用户2首先修改完毕,提交 到远端

用户1页修改了同一处,提交

这个时候用户1首先得push

当我们push远端的时候,它会自动merge,但是现在需要我们手动去merge

直接打开冲突文件

head里面就是冲突文件,需要我们自己来选择,然后选择好后删除head提示就行

查看,提示的意思就是:如果你觉得还是有冲突,就退出merge操作(执行git merge --abort),如果修改完毕就执行提交操作(git commit)

4、不同人分别变更了同一文件的文件名和文件内容

两个账号都更新到最新

用户1更新文件名,并且提交

接着用户2修改文件内容

提交报错

用户2直接push,Git会直接智能的选择merge

 

5、不同人修改了同一文件的文件名

用户1 修改文件名之后提交

用户2页修改文件名之后准备提交,我们pull一下看看

这个时候git就报冲突

我们自己选择需要确定的文件名

然后push就可以了

发布了483 篇原创文章 · 获赞 104 · 访问量 20万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章