git学习

目录

前言

一、git是什么?

二、基本配置

三、基础操作指令

1、新建一个文件到仓库

2、修改一个已有文件

 基础命令小结:

​编辑

四、分支

合并分支:

解决冲突:

小结:

五、远程仓库

克隆 

抓取和拉取比较多

远程解决冲突

六、在idea中使用git

总结


前言

git用于项目管理,是每个程序员必须熟练使用的工具。

这里我直接看的黑马的视频:【黑马程序员Git全套教程,完整的git项目管理工具教程,一套精通git】https://www.bilibili.com/video/BV1MU4y1Y7h5?p=4&vd_source=70cd9a7d58eaf79ee46e9bddc1d0d53e

Git教程


一、git是什么?

Git是分布式版本控制系统(Distributed Version Control System,简称 DVCS),分为两种类型的仓库:本地仓库和远程仓库。
工作流程如下:
1.从远程仓库中克隆或拉取代码到本地仓库(clone/pull)
2.从本地进行代码修改
3.在提交前先将代码提交到暂存区
4.提交到本地仓库。本地仓库中保存修改的各个历史版本
5.修改完成后,需要和团队成员共享代码时,将代码push到远程仓库

git工作流程图:

git学习_第1张图片

命令如下
1.clone (克降):从远程仓库中克降代码到本地仓库
2.checkout (检出) :从本地仓库中检出一个仓库分支然后进行修订
3.add (添加):在提交前先将代码提交到暂存区
4.commit (提交):提交到本地仓库。本地仓库中保存修改的各个历史版本
5.fetch (抓取): 从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少。

6. pull(拉取): 从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于fetch+merge

7.push (推送) :修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库

用到的Linux指令:

Is/ll    查看当前目录

ls -al 可以显示隐藏文件夹

cat     查看文件内容

touch 创建文件

vi       vi编辑器(还可以使用记事本、editPlus、notPad++等其它编辑器)

二、基本配置

1.打开Git Bash

2.设置用户信息

git config --global user.name “itcast"

git config --global user.email "[email protected]'

查看配置信息

git config --global user.name

git config --global user.email

这里要注意,为了之后操作方便设置两个别名,操作如下:

git学习_第2张图片

git学习_第3张图片 

git学习_第4张图片 

三、基础操作指令

git学习_第5张图片

1、新建一个文件到仓库

操作步骤如下:

git init  为创建一个仓库

ll   为显示当前文件夹里的文件

touch xxxx.txt     为创建一个txt文件

git学习_第6张图片

git status   为显示当前状态(如图这里显示的是untracked files,即未跟踪) 

git add xxxx.txt   为将此文件从工作区添加到暂存区(如果写成git add .  即将当前工作区的文件都添加到暂存区)

git学习_第7张图片

上述操作后,再次查看状态(git status),显示changes to be committed,即即将被提交到仓库。

git学习_第8张图片

提交:git commit -m "add file01"     这里是提交,“”双引号里面写的是注释消息。

git学习_第9张图片

用git log查看仓库里的list,这里会显示上传的作者以及时间。

git学习_第10张图片

上述是新建一个文件如何提交到仓库。

那如何修改一个已有文件呢?

2、修改一个已有文件

用编辑器修改:vi xxxx.txt

 进入编辑界面,键盘点击 inset 变为可编写,编写完成,点击ESC,输入 :wq保存退出( :是需要打的)git学习_第11张图片

再git add . ;git commit -m "update file01"

git log显示如下,会有一个添加消息和一个更新消息:

git学习_第12张图片

 基础命令小结:

git学习_第13张图片

git学习_第14张图片

git学习_第15张图片

git学习_第16张图片

 这个“添加文件至忽略列表”实操一下:

新建 file01.a 和  .gitignore文件,用vi .gitignore编辑.gitignore文件,然后insert加上 *.a ,按esc后“:wq”编辑完成。这里的意思就是说凡是.a的文件都被加入了忽略列表,之后执行工作区添加到缓存区等指令不会对其生效。

git学习_第17张图片

git学习_第18张图片

这个版本可以回退,找到修改前的版本恢复。比如:找到a975438,点击就复制了,按滚轮粘贴到--hard 后面,回车后就能看到回退到更新前的a9..版本了。

git学习_第19张图片

同时也能回到更新的版本:--hard后面加上更新的版本标识就可以恢复。

git学习_第20张图片

就算clear(也就没有更新的提交记录怎么办)了也能找回来

 

用到git reflog可以找回ID(标识),再用git reset --hard id,恢复完成。

git学习_第21张图片

所以,只要文件夹不删,提交过的都可以找回来。 

四、分支

git学习_第22张图片

git学习_第23张图片

实操一下:

git branch dev01 创建下新分支dev01

再将其上传至仓库

git学习_第24张图片

此时的仓库list:

这里的head->指向当前分支,我们只能对当前分支进行操作。

这里用git checkout dev01/master 来切换分支。

git学习_第25张图片

git学习_第26张图片

 上面是在dev01分支中加入新文件file02.txt,并将文件添加到仓库。可以看到不同的分支只能看到自己分支的内容,几个人在不同分支工作要怎么合起来呢?

合并分支:

一般将其他分支合到master里面去,所以首先要切换到master分支,

git学习_第27张图片

写git merge dev01

git学习_第28张图片

可以对比两个git-log后的结果,第二个结果可以看到dev01的add file02就已经在master下了。

解决冲突:

如果不同的人(就是不同的分支)改的同一个文件不一样怎么办?会合并失败。

git学习_第29张图片

git学习_第30张图片

上面新建一个分支,将file01里面的值改成2,但是又在master分支里将file01里面的值改成3,

git学习_第31张图片

会出问题,file01不知道去哪一个,合并会失败。

git学习_第32张图片

git学习_第33张图片 

如何解决?暴力解决,打开file01,手动修改成想要的值。

git学习_第34张图片

看之后效果,可以看到合并成功

git学习_第35张图片

最后

git学习_第36张图片

小结:解决冲突

git学习_第37张图片

git学习_第38张图片

git学习_第39张图片

git学习_第40张图片

小结:

git学习_第41张图片

这里删除的d和D有区别:在一个分支上删除另一个分支的文件,用d不行,用大D可以。

git学习_第42张图片

补充一个合并的快进模式:

五、远程仓库

github、码云、gitlab,前两个直接用,后面这个要自己部署,之后在公司里也基本是用gitlab。

github会慢一点,但全球的资源还是蛮香的。这里课程写的Gitee,在国内还是会好用一点吧。

git学习_第43张图片

git学习_第44张图片

克隆 

git学习_第45张图片

克隆在分工合作里面用得比较少,

抓取和拉取比较多

git学习_第46张图片

远程解决冲突

git学习_第47张图片

类似于本地的解决冲突 

git学习_第48张图片

暴力改,改完再推,再pull更新一下就好了。

git学习_第49张图片

git学习_第50张图片

六、在idea中使用git

git学习_第51张图片

git学习_第52张图片

git学习_第53张图片

git学习_第54张图片


总结

还剩一点idea用git,好困啊,明天再改。还有我感觉我要不要建设下我的github或者Gitee。

你可能感兴趣的:(Git,学习,git)