37.git详细讲解(使用码云作为远程仓库)

目录

一、什么是git?什么是svn?他们之间的区别?

1.git

2.svn

三、Git的下载和安装

四、Git代码托管服务

五、码云的使用

1.使用码云创建仓库

2.邀请其他用户成为仓库成员

六、Git常用命令(重要!!!)

1.环境配置

2.获取Git仓库

(1)本地初始化一个Git仓库

(2)从远程仓库克隆

3.工作目录、暂存区以及版本库

(1)版本库

(2)工作目录(工作区)

(3)暂存区

4.Git工作目录下文件的两种状态

5.本地仓库操作

(1)查看状态

(2)将文件加入暂存区

(3)将暂存区的文件提交到本地仓库

(4)删除文件

(5)将文件添加至忽略列表

(6)查看日志记录

6.远程仓库的使用

(1)查看远程仓库

(2)添加远程仓库

(3)从远程仓库克隆

(4)移除远程仓库

(5)从远程仓库抓取(fetch)与拉取(pull)

(6)推送到远程仓库(push)

7.分支(重要)

(1)查看分支

(2)创建分支

(3)切换分支

(4)推送至远程仓库分支

(5)合并分支

(6)删除分支

8.标签

(1)列出已有的标签

(2)创建新标签

(3)将标签推送到远程仓库

(4)检出标签

(5)删除标签


一、什么是git?什么是svn?他们之间的区别?

1.git

(1)什么是Git

Git是分布式版本控制系统,分为两种类型的仓库:本地仓库远程仓库

(2)Git常用操作

  • clone:克隆,将远程仓库复制到本地
  • push:推送,将本地仓库代码上传到远程仓库
  • pull:拉取,将远程仓库代码下载到本地仓库

2.svn

(1)什么是svn

svn是集中式版本控制系统,版本库集中放在中央服务器。开发人员需要从中央服务器下载最新版本开发,然后将自己代码再提交中央服务器。

(2)缺点

*1)服务器单点故障

*2)容错性差

二、Git工作流程

1.从远程仓库中克隆代码到本地仓库

2.从本地仓库中checkout代码然后进行代码修改

3.在提交前先将代码提交到暂存区

4.提交到本地仓库,本地仓库保存修改的各个历史版本

5.修改完成后,需要和团队共享代码时,将代码push到远程仓库

三、Git的下载和安装

下载地址:https://git-scm.com/download

一路下一步,就行。

检验是否安装成功,只需要右键随便一个文件夹,应该会有两个Git的图标的

四、Git代码托管服务

我们都知道,Git有本地仓库和远程仓库。那怎么搭建远程仓库呢?可以使用托管服务

常用的Git代码托管服务:

  • github(https://github.com/)
  • 码云(https://gitee.com/)
  • Gitlab(https://about.gitlab.com/)

我们使用的是码云。

五、码云的使用

1.使用码云创建仓库

先注册,然后点击“+”。我们这里注册两个

2.邀请其他用户成为仓库成员

六、Git常用命令(重要!!!)

1.环境配置

安装Git后首先需要设置用户名和email地址。

(1)设置用户信息

git config --global user.name "xupeng"
git config --global user.email "[email protected]"

(2)查看配置信息

git config --list
git config user.name

上述命令的设置的信息会保存在~/.gitconfig文件中

实例:

找一个文件夹,右键点击“Git Base Here”,输入git config --list

然后我们输入:git config --global user.name "xupeng"

我们设置的信息在用户下的.gitconfig下:

2.获取Git仓库

获取Git仓库的两种方式:

  • 本地初始化一个
  • 从远程克隆

(1)本地初始化一个Git仓库

*1)我先创建一个文件夹,然后进入xupengRepo1里面去(一定要进去,因为在不同文件夹下操作,得到的结果可能不同)

*2)右击,点击“Git base here”,输入git init,初始化一个Git仓库。

注意,此时会创建一个.git文件夹,但是他是一个隐藏文件夹,你需要设置你的隐藏文件夹可见

(2)从远程仓库克隆

我们先打开我们的码云,找到要克隆的远程仓库:

然后进入gitRespository文件夹右击,点击“Git base here”,输入git clone url

3.工作目录、暂存区以及版本库

(1)版本库

我们之前本地创建git之后会有一个隐藏.git的文件夹,这个文件夹就是版本库,里面存放了很多配置信息,日志信息,文件版本信息等

(2)工作目录(工作区)

包含.git文件夹的目录就是工作目录,主要用于存放开发的代码。

也就是对应的我们的xupengRepo1

(3)暂存区

.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以交stage。

暂存区是一个临时保存修改文件的地方

4.Git工作目录下文件的两种状态

Git工作目录下的文件的两种状态:

  • untracked:未跟踪(未被纳入版本控制)
  • tracked:已跟踪(已被纳入版本控制)
    • unmodified:未修改状态
    • modified:已修改状态
    • staged:已暂存状态

这些状态会随着我们Git命令执行发生变化

5.本地仓库操作

(1)查看状态

git status
git status -s(精简版)

我们修改一下readme文件,在新增一个hello.txt。

(2)将文件加入暂存区

//放到暂存区
git add hello.txt

//从暂存区撤走
git reset Head hello.txt

我们使用git add hello.txt,会发现hello.txt发生了变化,从??变成了A(表示当前加入了暂存区)

我们可以使用git reset Head hello.txt,让他从暂存区出来

(3)将暂存区的文件提交到本地仓库

//不加暂存区,添加说明,直接提交
git commit -a -m "init hello.txt"


//直接接说明提交
git commit -m "init hello.txt"



//编辑器加说明
git commit
//此时会进入编辑器
按"i",然后输入自己想写的说明。写完后,按一下“ESC”,再按shift+“:”,输入“wq”,回车



实例:

我们输入git commit -m "init hello.txt",提交并打印。再看状态,就没有hello.txt文件了,表示已经提交

但是这里还有一个readme文件处于已修改状态,为什么呢?

因为我们做了修改后没有加到暂存区,所以不能提交。

上面有看到我们加了一个-m,表示添加提交说明。如果不加怎么做:

先加入到暂存区

输入git commit后,就会进入vim页面,按"i",然后输入自己想写的说明。写完后,按一下“ESC”,再按shift+“:”,输入“wq”就行了

(4)删除文件

git rm hello.txt

删除完后需要提交,但是不用加入暂存区

你如果直接删除本地仓库文件,此时,该文件并没有放到暂存区。需要在命令里吧文件加入暂存区,再提交

(5)将文件添加至忽略列表

不是所有文件都需要Git来管理,对于这些文件我们要忽略。

*1)创建.gitignore文件,因为没有文件名,不可以直接创建,在命令行输入touch .gitignore

*2)打开.gitignore输入*.class

*3)创建class文件,会发现没有被管理

(6)查看日志记录

git log 查看日志,通过回车向下查看。

如果想退出,输入“q”

6.远程仓库的使用

(1)查看远程仓库

git remote

git remote -v

git remote show origin

因为我这个仓库克隆的码云里的仓库,所以查看会有这个效果。 

origin表示这是Git克隆仓库,默认名字是origin

查看详细信息: git remote show origin

(2)添加远程仓库

git remote add <shortname> <url>

一个本地仓库可以添加多个远程仓库 

(3)从远程仓库克隆

git clone <url>

克隆不仅仅是文件,包括日志信息,历史记录等都会克隆 

(4)移除远程仓库

git remote rm <shortname>

只是移除你本地和远程仓库的关联关系,不是真的移除远程仓库

 

(5)从远程仓库抓取(fetch)与拉取(pull)

都是从远程仓库获取最新版本数据到本地仓库。

git pull = git fetch + git merge
//允许合并
git pull origin master --allow-unrelated-histories

fetch不会自动合并数据(merge),pull会自动合并数据(merge)

即:你抓取完之后只是放到本地仓库,但是没有合并到工作区,而是放在objects文件夹下面。然后我们需要git merge origin/master手动的合并

如果仓库自己创建的,并且存在文件,会报错:refusing to merge unrelated histories。此时需要变成git pull --allow-unrelated-histories

(6)推送到远程仓库(push)

git push origin master

7.分支(重要)

Git会默认创建一个分支叫master,他跟其他分支没啥区别,只是因为它是默认创建的。

(1)查看分支

列出所有本地分支:git branch

列出所有远程分支:git branch -r

列出所有本地分支和远程分支:git branch -a

(2)创建分支

git branch aa

 

(3)切换分支

git checkout aa

(4)推送至远程仓库分支

git push origin aa

(5)合并分支

git merge master -m "merge"

//合并冲突后,需要git add

当你出在xupeng1分支的时候,你输入上述命令,会将master分支的内容合并到xupeng1分支:

注:如果在不同的分支中对同一个部分进行不同更改,git就没办法合并,此时会提示合并冲突。修复冲突后,执行git add命令标识冲突解决

当我们master和xupeng1修改了同样的文件,发生了冲突:

我们手动删除没用的:

再打开user.class:

再将该文件推送到远程仓库:

(6)删除分支

git branch -d aa

//强制删除
git branch -D aa

删除的只是本地分支,不是远程分支

如果你要删除的分支跟远程的不一样,即你在要删除的分支里写过一些代码,这时要用-D才能删除。

8.标签

git给某个提交打上标签,一般用于标记版本。

(1)列出已有的标签

//列出已有标签
git tag

//查看tag信息
git show <tag>

(2)创建新标签

git tag aa

(3)将标签推送到远程仓库

git push <remote> <tag>

(4)检出标签

//新建一个分支,指向标签
git checkout -b <branch> <tag>

(5)删除标签

//删除本地
git tag -d <tag>

//删除远程
git push origin :refs/tags/<tag>

猜你喜欢

转载自blog.csdn.net/qq_40594696/article/details/109806374