zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Git——从入门到入云

2023-06-13 09:15:50 时间

文章目录

链接: 笔记

(一)Git——安装与初始化

安装

​ 安装其实就比较简单的,把Git下载过来,一直下一步就行,没什么难度。

命令

​ 接下来介绍一些简单的Git命令。

1.用户签名

​ 用户签名的作用就是告诉别人你是谁,方便区分不同的成员,具体方法如下所示

git config --global user.email "123@qq.com"
git config --global user.name "name"

​ --global 是让我们的用户签名到哪都可以用,而不只能在某一个文件夹用,省了蛮多事情。 ​ 然后具体操作如下所示。我们现在介绍一下如何查看自己设置成功了。

​ 先找到c盘,打开用户名文件夹,找到一个 .gitconfig 的文件夹,用记事本打开就可以了。打开之后如果显示是这样的,就是说明成功了。

2.初始化

​ 这个初始化呢,其实就是选择一个希望被git管理的文件夹,然后将其初始化,这样我们就得到了一个被git管理的文件夹,后期在文件夹中的操作都能被记录下来。

步骤

  1. 找到一个希望被管理的文件夹
  2. 在文件夹单击右键,点开 Git Bash Here (或者直接通过cd 进入)
  3. 输入指令
git init

​ 之后就能到文件夹里看到一个这样隐藏的文件了。(要在文件管理里面打开显示隐藏文件)

​ 然后再介绍一些简单的常用指令。而且在git里面,按上键可以回到之前的命令,感觉特别舒服。

# 这个就是进入命令,(可以用Tab键补全)
cd first/
# 这个就是回到上一级
cd ..
# 这个就是查看文件夹
ls
# 这个就是查看所有文件夹
ls -a

(二)Git——基本操作

工作机制

​ Git的工作机制主要分为三个区,工作区,暂存区,历史区。工作区很好理解,就是我们工作的地方,然后暂存区,就是用来放我们写好的代码,最终把成稿提交到版本库。之所以不直接提交到版本库就是怕到时候版本库特别乱,到处都是各个版本的修订版,具体如下图所示。

托管平台

  • 局域网(内网)
    • gitlab
  • 公网(外网)
    • gitlab
    • github
    • gitee

​ 内网主要就是安全,但是搭建成本较高。而外网成本不高,但是不安全。为此,外网有私有和共有之分,顾名思义,私有的话你必须有相应的权限才能进入,确保了一定的安全性。

命令

提交暂存区

git add

​ 这个就是将我们的文件或者文件夹添加到暂存区的命令,主要有下面几种。

# 添加一个文件
git add first.txt
# 添加一个文件夹(非空)
git add css/
# 添加所有文件
git add --all
git add .

查看

git status

​ 这个就是查看我们现在的状态的代码。我们需要知道,绿色的就代表现在这个文件夹在暂存区。

git status

删除暂存区

git rm --cached

​ 这个是用来删除暂存区的文件的,其实在上面也有提示。

git rm --cached

​ 这样就删除了,颜色变成红色。

提交历史区

git commit

​ 这个就是把我们在暂存区的代码放到历史区了。

git commit -m "first功能实现"

​ 如果没有加 -m,就会进入文件,它一定要你留下为什么提交这次记录才会让你走。这个时候,先按下i键,进入insert模式。

​ 然后写下这次的记录名称,按下ESC键,之后输入:wq(一定要半角的,不然输入不了)

查看记录

git log

​ 这个就能查看我们历史区的记录了,但是只能查看到指针之前的记录。

git log

git reflog

​ 这个就可以查看到所有的记录了。

git reflog

版本穿梭

git reset --hard

回退

​ 这个就是我们用来回退版本用的指令,其实就是改变HEAD指针的位置,然后文件直接会退到工作区。

# 回退到上一次
git reset --hard HEAD^
# 回退到多次前
git reset --hard HEAD^^
git reset --hard HEAD~2

​ 打开工作区文件,会发现确实回到了第一次提交的代码。

穿梭

​ 把HEAD改成之前版本的地址,就可以实现穿梭的操作,地址可以由git reflog查看。

git reset --hard 112154a

git reset --soft

​ 这个是软复位,主要功能就是把文件退到暂存区,主要用来改记录名称和为了历史区的修改,接下来我来展示一下第二种功能。

​ 可以看到,bug已经修复,然后历史区也是非常清晰的,没有两份提交记录。

git revert

​ 这个其实也算是版本穿梭,与git reset 不同的地方就在于这个命令是重新创建一个新的记录,但是内容却是你想回退版本的内容。可以看到,版本其实回到了2版本,但是却是多加了一条记录。

git revert HEAD

(三)Git——分支

分支概念

​ 分支的话,就是把我们整个文件夹分成一个一个独立的区域。当你完成A功能的时候,你就可以开一个B功能的分支区去开发,而当A功能需要修复的时候,就不会影响到B功能的开发,等B功能开发完了之后,再合并在一起就可以了。

创建/删除分支

git branch

​ 这个指令单独使用那就是查看当前分支。

git branch

​ 要是在后面加上分支的名称,就可以创建分支了。

git branch second

​ 要是在后面加上-d 和分支名称,就可以删除这个分支了。

git branch -d second

​ 要是加上-a 就能查看所有的分支

git branch -a

跳转分支

git checkout

​ 这个指令用来在各个分支跳转,后面加上分支名字就行。

 git checkout second

​ 然后在second里的提交什么的,是不会影响到master主分支的,其实就相当于把指针前移了一下,然后后续操作全在second这个工作区操作了,还是比较好理解的。

合并分支

git merge

​ 这个命令用来合并各个分支,其实就是简单的把master指针移动到second分支上,没有什么不好理解的,但是在合并过程中可能会有冲突的情况,我们在后面慢慢分析。

git merge second

合并分支冲突

​ 其实我们应该知道,在分支合并的时候还是比较容易出现冲突的,其中主要的原因就有在开发其他分支的时候主分支改变了。然后进行代码合并的时候,就会发现有两个地方改动了,这样就造成冲突,git就不知道怎么办了,这个时候就需要我们来手动合并了。

​ 遇到这样的问题,我们只需要把多余的符号删掉,再到master里面提交一下就好了。当然,也可以使用一些软件来智能帮助我们解决冲突。

(四)Git——团队协作

​ 这个团队协作就需要我们借助远端库了,这里我们借助的是Github,在此之前我们需要先去注册一下Github账号,在此就不做介绍了,比较简单。然后创建自己的仓库首先点击右上方的加号,点击New repository,然后取一个名字,创建就可以了。

推送

git remote add origin

git remote add origin https://github.com/xiaodian2/xdd_project.git

​ 这个就是推送的指令,origin 代表的是后面这一大串的地址。

git remote -v

​ 这个是查看我们origin代表的地址,关掉了Git,不想重新打过了。

git remote remove origin

git remote add origin

​ 这个就是删除origin代表的地址。

git push

git push origin master:master

​ 这个就是把我们的主分支master推送到origin地址上的master上去,可以省略后面的:master。第一次推送的话,可能需要绑定你的账号,输入密码就行,然后,你就可以拥有一个自己的GitHub仓库了。

git push -u origin master

​ 如果以后一直使用这个origin地址,那么这样就可以记录地址,以后就可以直接git put 了。

​ 然后需要修改的话,先到本地修改,然后提交,非常不建议在远端库直接修改,就算是修改了,也要及时更新自己的代码。不然可能会导致代码冲突,就像分支合并那样,解决办法其实也是一样的。

git push -f

​ 这个是强制推送,非常不建议使用,就当没学。

拉取

git pull

git pull origin master

​ 这个就是从远端库拉取代码到我们本地.

克隆

git clone

git clone https://github.com/xiaodian2/xdd_project.git

​ 这个就是用来克隆别人代码的,也就是白嫖别人的代码。

冲突

​ 在团队协作中很容易出现冲突,主要分为两种。 ​ 第一种就是在修改不同的文件,当对方提交到了远端库之后,你要是再想提交你的代码,就必须要先拉取最新的代码,然后再提交你的代码。 ​ 第二种就是在修改同一个文件,当对方修改并提交到远端库之后,你想要去提交你的代码,这个时候别人提交的版本就会与自己的代码冲突,然后只能去拉取,这个时候就回到了合并分支冲突了,需要自己去决定保留谁的代码,然后再去推送。所以遇到这种情况,一般就需要提前协商好,

分支

​ 如果想要获取对方的分支。操作其实和主分支差不多,首先提交分支,然后别人拉取回来,就可以直接使用了。提交也是和master一样的。

# 提交分支。
git push origin second
# 然后别人拉取回来
git pull origin second
# 别人切换到分支
git checkout second

删除分支

​ 删除分支的原理就是推送一个空的分支到需要覆盖的分支上,这样就相当于删除了远端库的分支。

git push origin :bugfixed

跨团队

​ 跨团队协作,首先需要把别人的项目fork下来,这样自己就有了这个项目,当你修改之后,就需要去提交pull request。然后对方通过一下就行。我没两个账号,就不展示了。

Gitee

​ 和GitHub一样,就不介绍了。