git学习

发布时间:2023年12月28日

目录

前言

一、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工作流程图:

命令如下
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 "hello@itcast.cn'

查看配置信息

git config --global user.name

git config --global user.email

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

?

?

三、基础操作指令

1、新建一个文件到仓库

操作步骤如下:

git init? 为创建一个仓库

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

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

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

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

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

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

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

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

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

2、修改一个已有文件

用编辑器修改:vi xxxx.txt

?进入编辑界面,键盘点击 inset 变为可编写,编写完成,点击ESC,输入 :wq保存退出( :是需要打的)

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

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

?基础命令小结:

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

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

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

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

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

?

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

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

四、分支

实操一下:

git branch dev01 创建下新分支dev01

再将其上传至仓库

此时的仓库list:

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

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

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

合并分支:

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

写git merge dev01

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

解决冲突:

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

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

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

?

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

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

最后

小结:解决冲突

小结:

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

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

五、远程仓库

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

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

克隆?

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

抓取和拉取比较多

远程解决冲突

类似于本地的解决冲突?

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

六、在idea中使用git


总结

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

文章来源:https://blog.csdn.net/m0_66076989/article/details/135133330
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。