侧边栏壁纸
  • 累计撰写 106 篇文章
  • 累计创建 19 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

Git的基本使用

zero
2020-07-26 / 0 评论 / 0 点赞 / 25 阅读 / 13178 字
温馨提示:
本文最后更新于 2024-07-01,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

一、Git引言

在单人开发过程中,需要进行版本管理,以利于开发进度的控制。

再多人开发过程中,不仅需要版本管理,还需要进行多人协同控制。

二、介绍

Git是一个开源的分布式版本控制系统,用于敏捷高效的处理任何或大或小的项目。

Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开源版本控制软件

三、Git安装

#下载地址 https://git-scm.com/download/
#下载安装完后,打开cmd
#如下信息会在提交代码时使用,记录在你的每次提交中,以后就知道每次提交的人是谁,"git log"可以查看
#执行:
git config --global user.name "Your Name" #用户名
git config --global user.email "email@example.com" #邮箱
#查看信息
git config -l
#测试:cmd中执行,查看git版本
git version

四、架构

版本库:工作区中有一个隐藏目录 .git,这个目录不属于工作区,而是git的版本库,是git管理的所有内容

暂存区:版本库中包含一个临时区域,保存下一步要提交的文件。

分支:版本库中包含若干分支,提交的文件储存在分支中。

五、仓库

对应的就是一个目录,这个目录中的所有文件被git管理起来。

以后会将一个项目的根目录,作为仓库。

仓库中的每一个文件的改动都由git跟踪。

5.1新建一个仓库

选择一个目录,执行指令:

git init

5.2工作区

执行 git init的目录即为工作区,如F:\HZZQKJ\GitDirectory 目录即为工作区【不包含.git 目录】

所有文件,都首先在工作区新建,然后可以存入仓库(版本库),进行版本控制。

5.3存储区

暂存区也在.git目录内,工作区的文件进入仓库是,要先进入暂存区。

5.4分支

版本控制,简单说,就是记录文件的诸多版本,分支就是这些版本的最终记录位置。

六、基本操作

6.1查看仓库状态

执行下面代码可以看见工作区中文件的状态

git status

6.2暂存文件

执行 git add作用是将工作区的文件存入暂存区中,. 的作用是所有的意思

git add .

6.3提交文件

执行 git commit -m "这里写提交的描述信息" 作用是将暂存区的文件存入分支,形成一个版本,m的意思是message的缩写,"描述"的作用是为了不混乱以后的提交

git commit -m "add hig.txt"

七、远程仓库

第五章中的仓库,其实是本地仓库

当多人协同开发时,每人都在自己的本地仓库维护版本

当很重要的一点是,多人之间需要共享代码、合并代码,此时就需要一个远程仓库

7.1远程仓库工作模式

一个仓库,多个程序员可上传

7.2远程仓库选择

GitHub或码云都不错

7.3基本操作

每个开发人员,在面对远程仓库时,会面临的一些基本操作。

7.3.1注册git服务器账号

去GitHub或者码云上创建账号

7.3.2新建远程仓库(码云为例创建)

  1. 点击新建仓库

  2. 写入仓库名称,路径是默认仓库名称的,仓库介绍可写可不写。

  3. 其他默认,点击创建

  4. 看到调转后则表示创建成功

7.3.3本地关联远程仓库

现在这个页面就能看见项目名称以及项目的HTTPS和SSH地址

#输入
git status
#返回clean则都提交了
#FlamingYouth只是我自己取得名字
#https....则是码云上的远程地址
git remote add FlamingYouth https://github.com/FlamingYouth/Test.git
#-v 则是查看刚刚的关联的地址名
git remote -v

7.3.4推送文件到远程仓库

#上传到FlamingYouth项目中master分支中
git push FlamingYouth master
#弹出框输入码云的用户名和密码
#出现GITEE.COM则成功上传

7.3.5克隆远程仓库

如果仓库已经由别人创建完毕,我们需要其中的内容,则可以通过克隆将其复制到本地。

#在克隆文件夹中cmd,使用 git clone + "地址"
git clone https://gitee.com/flamingyouth/Test.git

7.3.6代码共享

#多人协同开发时,写好代码的git push上传到远程仓库
git push FlamingYouth master
#需要代码的git pull拉取代码即可。//记得到另一个文件夹也要关联一下
git pull FlamibgYouth master

7.3.7命令汇总

代码

说明

git remote add 标识名(FlamingYouth) 远程地址

将本地仓库内容上传到远程仓库

git push 标识名 master

从远程仓库下载内容到本地仓库

git pull 标识名 master

从远程仓库下载内容到本地仓库

git clone 远程地址

将远程仓库复制到本地,并自动形成一个本地仓库

八、分支

8.1分支简介

分支,是一个个版本最终存储的位置

分支,就是一条时间线,每次git commit 形成一个个版本,一个个版本一次存储在分支的一个个提交点上。

8.2分支基操

8.2.1查看分支

查看当前仓库的分支 git branch

仓库中默认只有master分支

执行git commit 时,默认是在master分支上保存版本

#查看分支
git branch

8.2.2创建分支

在项目开发过程中,我们不会轻易的在master分支上做操作。

我们会新建一个开发专用的分支,在此分支上做版本的纪录。

当代码确实没问题时,才会将开发分支上成熟的代码版本添加到master分支上。

即保证开发过程中,可以及时记录版本,又保证master分支上每个提交点都是稳健版本。

#创建分支名为dev
git branch dev

8.23切换分支

默认情况下,当前使用的分支是master分支

可以切换到dev分支,则后续git commit便会在`dev分支上新建版本(提交点)

#切换到dev分支
git checkout dev

8.3新建分支细节

新建分支时,新分支,默认有哪些内容?分支中包含哪些次提交?

8.3.1新分支初始内容

每个分支都有一个指针,新建一个分支,首先是新建一个指针

而且新分支的指针会和当前分支指向同一个提交点

新分支包含的提交点就是从第一个提交点到分支指针指向的提交点。

8.3.2多分支走向

在master分支和新分支,分别进行git add 和 git commit

则主分支与新分支分开,分两条线路走

8.3.3分支提交日志

查看分支的提交日志,进而看到分支中提交点的详细情况

#简单日志
git log --oneline
#完整日志
git log
#走势图
git log --oneline --graph

8.4分支合并

两个分支内容的合并

git merge 分支a 合并分支a

合并的方式有两种:快速合并和三方合并

8.4.1快速合并

如果分支A当前的修改,是完全基于分支B的修改而来,则B分支合并A分支,就是移动指针即可。

#用关键字merge快速合并
git merge dev
#返回Fast-forwar

8.4.2三方合并

在不具备快速合并的条件下,会采用三方合并

#用关键字merge快速合并
git merge dev
#返回recursive strategy

8.4.3合并冲突

两个分支进行合并,但它们含有对同一个文件的修改,则在合并时出现冲突,git无法决断该保留该文件哪个分支的修改。

8.4.3.1冲突演示
git merge dev
#返回CONFLTCT(content):Merge conflict in b.txt
8.4.3.2冲突解决

出现冲突后,如要由两个开发人员当面协商,该如何取舍,为冲突文件定义最终内容。

解决方案:

  1. 保留某一方的,删除另一方的

  2. 保留双方的

  3. 但无论如何,要记得删除 <<<< ==== >>>> 这些

  4. 本质是两人协商为冲突的内容,定制出合理的内容。

九、Idea管理Git

9.1关联git

#打开idea >>> settings >>> Version Control >>> Git >>>Path to Git executable

9.2创建仓库

#VCS >>> Import into Version Control >>> Create Git Repository...

9.3提交-commit

#VCS >>> commit

9.4创建分支

#在右下角点击Git: master >>> 选择需要的分支如:dev >>> Checkout

9.5上传到远程仓库(push)

#VCS >>> Git >>> push

9.6复制到本地仓库(clone)

#VCS >>> Git from Version Control >>> Git >>> URL仓库的链接
#输入账号和密码

9.7更新到本地仓库

#VCS >>> Git >>> pull

9.8冲突解决

#保留自己 >>> Accept Yours
#保留他人 >>> Accept Theirs
#然后在Terminal终端中输入
git commit -m "fix conflict"

9.9补充说明

#可以在项目中新建一个.gitignore文件来排除不需要上传的文件

十、多人协同开发

10.1开发人员

  1. 初始化:在idea中clone远程库,获取项目。会建立本地库。

  2. 后续的开发中,都要在dev分支上进行。开发完一个功能并测试通过后就commit 提交到本地的dev分支中,然后上次(push)到远程dev分支中。

  3. 需要更新项目内容时,通过pull从远程仓库拉取内容。

  4. 注意:多人协同时,每次在push到远程库前,都先做一次pull,一来是把远程最新内容合并到本地,二来是核实本地内容是否和远程内容有冲突

后续的开发,会接到一个个的功能任务,往复操作 2、3、4、而已。

10.2补充说明(如果换了远程账号怎么办)

去Windows凭证管理中删掉原来写好的账号和密码

0

评论区