Git之路

指南

如果你想在简历上写“会常用的Git的命令“,那么这篇文章值得你要看,那我们需要掌握什么呢?其实会简单的操作就行,需要再上网搜,平时自己实际用到的也就几个命令,克隆别人的,添加提交、推送自己的,冲突合并,回退版本。下面将使用一个非常非常简单的实战,没有安装git教程,也没有gitee注册创建添加SSH公钥教程,这些建议自行参看教程或者上网搜。

推荐教程:廖雪峰,教程是实战类的,还不错,个人觉得就是不突出重点,就是一个教程,我最近开始参加实习,才意识到抓住重点才是关键,而不是啥都学,例如你看那种java语言基础视频,学是学了很多,但你不知道关键的东西,所以总是容易忘,看了就那样,也不知道学了干嘛。

介绍

git是一个分布式版本管理系统,简单点说就是版本管理,例如你看到的gitee或github上的那些开源项目,有很多版本,而且一个项目能让很多人一起协同参与,这都是管理系统的功劳,而git就是其中一种。当然自己用还没有到这种高大上的操作,但是学了git,当不懂git的人还在gitee上下载zip时,你一顿git操作猛如虎,相信能给你装不少B.

实战

内容:掌握常用命令、push冲突处理、结合idea用于实际项目

任务一:sb项目

创建个空文件夹,叫sb,作为我们的项目。

mkdir sb
cd sb
# 创建a文件
touch a

1、初始化、查看仓库状态

git init
git status

2、添加文件到暂存区、提交

git add a
git commit -m '本地仓库首次提交'

💡暂存区就是还没提交

3、远程关联远程仓库、推送 fish

git remote add sb git@gitee.com:zhandiming/sb.git
git push sb master

4、查看远程库名称

git remote -v

5、查看分支情况

git log
# 以图形的方式查看
git log --graph

6、Zone忙活了一天,终于通过echo命令向a文件中写了一句经典的文字

echo "Hello Zone" > a

7、此时Tom正在gitee浏览他们的sb项目,看着空空的a文件,添加了一句代码,然后点击提交。
在这里插入图片描述
8、然后Zone检查了半天,觉得没问题,就提交并进行推送

git add a;
git commit -m "我是Zone,我在a文件中写入Hello Zone"
git push sb master

💡但发现拒绝推送,这就是冲突,其中提示的意思就是有个小可爱推送过了,你得把远程的拉下来进行合并,然后再提交

 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@gitee.com:zhandiming/sb.git'
提示......

9、拉取远程分支

git pull sb master

注意这里代码会自动合并,但是只是将远程和本地代码不同的地方放到一起,至于最终怎么处理,需要你手动进行合并,查看a文件就会发现如下内容

<<<<<<< HEAD
Hello Zone
=======
Hello World
>>>>>>> e3ab3a382ebf9ad7036f771d35840d95edc95b34

通过git status你也会发现a文件回到了工作区的状态,因为他需要你手动修改合并,然后再次提交、推送。这就是冲突。但是这种冲突只会出现在修改的地方是同一个文件,否则会自动合并,并不需要进行手动修改合并,后面会举例

10、于是Zone手动修改合并,然后提交推送

echo "Hello Zone" > a
git add a
git commit -m '我是Zone,由于合并冲突,我手动修改a文件'
git push sb master

至此,冲突就解决了。

11、过了几天,Tom又去gitee浏览他们的sb项目,看着a文件上咋写着"Hello Zone",有些不爽,但是善良的Tom又想着算了,自己创建一个不就行了,于是添加了b文件并提交
在这里插入图片描述

12、Zone今天突然想起还有Tom这个小可爱,于是在a中写入第二句话并提交、推送

echo "Hello Tom" >> a
git add a
git commit -m '我是Zone,我在a文件中添加Hello Tom'
git push sb master

💡推送时时,发现又被拒绝了,于是使用pull进行拉取

git pull sb master

这时会发现,会跳出页面让我们输入合并行为
在这里插入图片描述
如果直接保存退出,默认就是自动合并提交,然后提交的默认信息就是第一句,可自行编辑。
如果以#开头则会提示由于提交没有带消息(相当于没有-m),需要我们在本地进行手动提交,部分提示如下

error: Empty commit message.
Not committing merge; use 'git commit' to complete the merge.

总结:不同文件修改会自动合并,相同文件修改需要手动合并,后者才算真正的冲突。

任务二:idea实战

使用idea创建sb项目(maven或springboot都行),完成任务一,同时要求使用.gitignore排除无关文件的上传,例如.idea文件夹
💡实际开发中还是会直接用idea进行git管理,所以有必要掌握,而且很简单,就是得找到按钮。
在这里插入图片描述
出现冲突,idea可以用Update Project,而不是pull,对于不同文件的修改的合并,他会选择默认自动合并,而不是像命令行让你选,因为大部分情况确实是只需要自动合并。但相同文件就一样,需要点击界面进行修改。本质上也是pull,不过多了更多人性化处理,可通过控制台查看所使用的命令。

任务三:分支实战(待续)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值