Git使用

Git使用记录

  • 前言:
  • 先叙
  • 1.常用git命令
    • 1.1 基础命令
    • 1.2 展开聊聊


前言:

此文站在巨人的肩膀上,结合自己的使用体验,分享Git的使用历程和各种技巧,Git的强大无以言表,现如今常用的开发工具比如idea,已经很好的嵌入了git的可视化操作,使用起来非常方便,不过有的小伙伴还是习惯使用git命令来操作,所以特此整理一些开发中常用的git操作,会有持续性的补充,如有不到之处,欢迎大家指正~~~

先叙

   本人在开发过程中对git分支的体会:日常开发中,基本上都是多人协作开发,那么多人协作开发的情况下,最好是不同的开发人员使用不同的分支,那么就有一个问题了,假如你的项目正好在招实习生,这说明可能该项目的人员流动就比较快,可能每间隔一段时间(两个月,三个月……实习生的事情,谁有说的定呢),就有新的开发者假如项目组。那么此时就会出现一个问题,我们要不要为每个开发者都建立一个新的分支,
   假如要,那么好处就是,开发者互相之间很少会因为解决代码冲突而焦头烂额,坏处就是假如项目组员没有及时合并分支。另外,还有一个小问题就是,想象一下,一个项目有几十个分支,那是什么项目啊,操作系统级别的另说,但是一般情况下,不需要的,就是分支的维护工作做的很到位,甚至有专门的开发人员来维护分支,或者组内开发者都比较自觉的会维护分支,但是看似解决了问题,实际不确定因素没有减少,反而增多了;
   假如不要,好处就是,我们的项目的分支看起来会比较简洁,但是项目大了起来,多人在同一个分支上做开发,又经常会出现代码冲突的问题,但是这个问题解决起来比较容易些,那就是每个开发者在每次push代码的时候,先pull一下,这样就能很大幅度避免冲突,所以控制项目分支数,也是一个开发经验的体现。
   所以有时候在开发分支问题上,我认为需要综合考虑,如有不慎,容易引起不必要的大麻烦喔。

1.常用git命令

1.1 基础命令

① 使用相关命令的时候,我们先看当前所处的分支,那么总得有个默认的分支,github的默认分支就是main,之前是master,后面改成了main,至于为什么改默认分支的名称,听说是为众生平等着想,whatever,反正分支名称都随便改的。
② 查看默认分支的时候,首先看看自己的项目中有没有.git文件夹等相关文件,如果没有的话,先初始化项目为git项目,初始化方式是,切换到目标文件夹下,使用git init 命令,此时文件夹中会出现一些git相关目录,下一步就是建立该项目与远程仓库的联系,根据个人需要,在远程建立相应仓库,由①知,远程仓库的默认分支是main。
③有的伙伴可能会好奇,git init操作干了什么,此处说明,本篇文章重点在分享命令的操作,以及操作完成之后会达到什么效果,具体内部的原理,暂不深究,有些重点命令比如合并分支之后,合并的过程,我会着重挑出来分析。

# 此段涉及命令
  git init          #初始化项目为git项目
  git  add remote origin 远程仓库的地址  #将本地git和远程仓库关联,所以从此处能看出,一个远程仓库一般对应一个本地项目的根文件夹
  git branch        #查看当前本地所处分支
  git branch -r     #查看当前远程仓库所处分支
  git branch -a     # 查看所有分支

实际开发中一般是要新建分支的,即使不为新的开发者新建分支,那么对于项目存在的bug,如果一时半会儿解决不了,一般也要新建分支

# 此段涉及命令
git branch 分支名       # 创建新分支
git switch 分支名       # 切换分支
git checkout -b 分支名  #创建并切换分支 
git switch -c 分支名    #创建并切换分支
@注:根据git版本,所以命令虽不同,但是实现效果是一样的。

在某分支开发完成后,一般要把改动提交到远程仓库,一般分为两种情况,第一种就是,这个分支上就只有你自己开发,那么远程该分支和本地该分支的版本是一样的,不会出现冲突的情况,此时直接添加就好了,第二种情况就是,这个分支不止你自己开发,那么极有可能出现不同时间不同的人在该分支上提代码,甚至是同一时间有不同的人在同一分支提交代码,那么每次提交代码前,都要先把远程代码同步到本地,此时不用担心远程的代码会覆盖自己本地未提交的代码,操作得当情况下,git会自动把远程的代码和本地的代码合并,而不是覆盖。

   # 此段涉及命令
   git pull <可选参数:主机名,分支名称,用于指定你要把代码推到哪个远程分支,一般不用>  #将远程分支同步到本地,即将远程分支的代码合并到本地分支
   这个命令的作用相当于git fetch和git merge组合,顾名思义是不难理解的。
   git push <可选参数:主机名,分支名称,用于指定你要把代码推到哪个远程分支,一般不用>  #将本地分支同步到远程,即将本地分支的代码合并到远程分支
   注意,在提交代码到远程的时候,即在执行git push 命令的时候,还要先提交代码到工作区,提交代码到工作区之前,还要先把添加到暂存区
   git add .                                   # 将改动添加到暂存区
   git commit -m "必填参数,提交简介,引号要加上的" #提交代码到工作区
   @关于暂存区和工作区的问题,这里先不展开

以上基本可以满足正常分支开发需求了,下面说说可能遇到的需求,和一些需要展开的内容

1.2 展开聊聊

  随着使用的深入,渐渐碰到新的需求,比如把远程副分支的代码合并到主分支;我们某次提交有问题,需要撤销commit,撤销push,git都能实现,在这段需求的描述中,会详细分解各自命令的用法!

未完待续~~~

你可能感兴趣的:(工具使用,github,git)