git pull冲突怎么解决_Git学习笔记

a3278ae437cc7c18959603cada923479.png

先说句废话:git是优秀的版本控制工具之一,想进互联网公司肯定要学,下文是我学习git做的笔记,如果有错误,欢迎指正。

另外欢迎在学GOlang的朋友加群交流:756817655

我是菜鸟,大佬们带带我

废话不多说,先上总结,初学的朋友可以先了解一下,再向下就是学习笔记了。

一、学完总结

* 常用

初始化本地仓库:

git init 

绑定本地用户名和邮箱:

git config --global user.name "名字"
git config --global user.email "邮箱"

保存至暂存区:

(保存某一个文件)    git add  <FileName>   
(保存根目录下的全部) git add  ./

从暂存区保存到本地仓库:

 git commit -m "说明"

上传到远程仓库:

git push

从远程仓库拉取覆盖本地:

git pull

查看日志:

git log
git log --oneline
git reflog

* 拓展内容

1.分支

查看所有分支:

git branch 

创建分支:

git checkout -b <name分支名> <template指定分支为模板,不填默认以当前分支为模板>

切换分支:

git checkout <name分支名>

合并分支

在要保留的版本中,

-本地:合并某个分支:

git merge <分支>

-从远程拉取会自动和本地合并,需要解决冲突:

git pull 

2.版本回退

查看日志后,

回退到指定版本-根据第几个算, 从0开始

回到之前版本:

git reset  --hard head~0    (回到上个)
​
git reset  --hard head~1    (回到上上个)

回退到指定版本-根据版本号(哈希值)

可以通过版本号精确地回退到指定版本号

git reset --hard  ac246a0 

3.简化git操作

给ssh起别名:

git remote add <origin别名> <ssh地址>

-u 至简:

git push -u origin master (master是分支名)

之后就可以在这个分支下直接 git pull、git push...

4.解决冲突

远程仓库,协同要先pull解决冲突,再push

因为代码冲突上传到远程后,不好修改,而且有冲突的话会上传不了,

pull保存到本地后,可以先解决冲突,再上传

2c4bf3fd156cde354d130fa78dd4916a.png

二、git学习

说明:git初学会发现一些指令发出后没有什么响应,会以为没弄好,其实不然,一些情况下git没有消息就是好消息,就是没有问题。

下图是在一个文件夹创建了一个本地仓库,设置了name和email,创建了一个文件,而后经过add,commit 将文件保存到本地仓库的过程。期间2个config和add发出后都没有反馈,但是功能实现了。这里自己试试就明白了。

351e5f6278df652f95dd897f63086e6b.png

1. 初始化git仓库repository

-这个仓库会存放,git对我们项目代码进行备份的文件

-在项目文件夹右击git bash

-命令:

git init

-解释:会在指定文件夹中创建一个名为 .git 的隐藏文件夹

e73896665a6844a0ac89377b721fe2d4.png

2. 保存使用者用户名和邮箱

-在git中设置当前使用的用户是谁

-每一次备份都会把当前备份者的信息存储起来

-命令:

配置用户名:  git config --global user.name " 用户名"  
​
配置邮箱:   git config --global user.email " 邮箱"  

--global 全局

3. 把代码存储到 .git 仓库中

1.把代码放到仓库门口(暂存区)

git add ./readme.txt   把指定的文件放到暂存区
git add ./             把所有修改的文件添加到暂存区

2.把仓库门口的代码放入仓库中区(版本库)

(下图是从教程视频中截取的,自己加了3个标记,如果侵权请联系我删除)

git commit -m  “这是对这次添加的东西的说明”  

342035ae348d6d9823c5de87f8e5e389.png

4. 可以一次性把修改的代码放到版本库中

git commit --all -m "一些说明" 

5. 查看当前状态

-可以用来查看当前代码有没有被放到仓库中区

-命令 :

git status

6. 查看日志

1.查看历史提交的日志(详细):

git log

92e3edd9ec2c37df3626c9a11556c340.png

2.查看历史提交的日志(简洁)会得到全部日志:

git log --oneline

a5951b7eb25bd3b26a7758a94e540b4a.png

3.会得到最近的日志,也比较简洁

git reflog

bcb0094391b756009a578f7367f1ac10.png

7. git中的忽略文件(这里是学的时候顺手复制来的,没有实操过,错了勿怪)

  • .gitignore,在这个文件中可以设置要被忽略的文件或者目录。
  • 被忽略的文件不会被提交仓储里去. -在.gitignore中可以书写要被忽略的文件的路径,以/开头, 一行写一个路径,这些路径所对应的文件都会被忽略, 不会被提交到仓储中 +写法
    ' /.idea' 会忽略.idea文件 ' /js ' 会忽略js目录里的所有文件
    ' ·/js/*.js`会忽略js目录下所有js文件

8. 版本回退

8.1 回退到指定版本-根据第几个算

表示回到上次代码提交时的状态

git reset  --hard head~0

表示回到上上次代码提交时的状态

git reset  --hard head~1

8.2 回退到指定版本-根据版本号(哈希值)

可以通过版本号精确地回退到指定版本号

git reset --hard  ac246a0 

哈希值其实是一段很长的随机生成的秘钥,但是有前7位就能匹配到了,够用了

0b618b86006e7898d33a5adf434a8483.png

9. 开辟新分支

git branch 查看所有分支

创建分支:

git checkout -b <name名字> <template指定分支为模板,不填默认以当前分支为模板>

切换分支:

git checkout  <name名字>

10. 合并

在要保留的版本中,

-本地:合并某个分支:

git merge <分支名>

-远程回来会自动合并:

git pull 

11. 远程仓库

会遇到的坑,所以先说,这里建议多练习:

多人协同要先pull,解决冲突,再push

2个文件夹分别git init,使用同一个远程仓库,Apush完成后,此时B写了些东西后也push,就会遇到冲突了,实操了才会有感受,加油把少年。

因为代码冲突上传到远程后,不好修改,而且有冲突的话会上传不了,

pull保存到本地后,可以先解决冲突,再上传

2c4bf3fd156cde354d130fa78dd4916a.png

远程仓库比如gitHUB中有https地址和ssh地址,ssh较为安全,想用他的话要先配ssh

11.1. 配置ssh

11.1.1. 查看是否存在ssh keys

 $ cd ~/.ssh

若出现“No such file or directory”,则表示需要创建一个ssh keys。

11.1.2. 创建新的ssh keys

ssh-keygen -t rsa -C "邮箱地址"

一路回车即可,不要输入内容

11.1.3. cd ~/.ssh,查看生成了两个密钥

包括两个文件rd_rsa和id_rsa.pub

07a203776eec2415bfa0af7dc23720f0.png

11.1.4. 复制公钥到github网站的ssh上

我的ssh文件在C:Users电脑用户名 .ssh目录下

记事本打开id_rsa.pub文件并拷贝,粘贴到github网站的ssh中。

是有 .pub的别搞错了

11.2. 上传数据到github或其他远程仓库

注意是把.git仓库中的内容上传,没有经过 add commit 的不会被上传

-git push 【地址】 【分支】

会把当前分支的内容上传到远程的master 分支上

例子:

git push <ssh地址> master

11.3. 从远程仓库下载覆盖本地

-git pull 【网址】 【分支】

会得到远程分支的数据:(注意本地要初始化一个仓库

例子:

git pull <ssh地址> master

会在本地做合并处理

11.4. git clone 【网址】

会得到远程仓库相同的数据

11.5. 简化pull和push操作

11.5.1. git remote add 【远程仓库的别名】【ssh的地址】

例子:

git remote add origin <ssh地址>

这样之后就不用再输入网址了,网址用【origin】代替

之后就可以

git push origin master

11.5.2. -u,本地关联远程分支简化操作

当我们再push时,加上-u参数,那么在下一次push时,只需要 git push就可以上传代码

(加上-u后,git会把当前分支与远程的指定的分支进行关联。)

例如:

git push origin  -u master

以后可以直接:

git push

*同时,由于分支已经关联,git pull也可以直接使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值