Git实操(超详细)

接上一篇文章...

 

Git基本操作

1.创建远程仓库

Git实操(超详细)_第1张图片

填写好你的仓库名称与地址

Git实操(超详细)_第2张图片

 仓库创建好之后,可以查看仓库的信息

Git实操(超详细)_第3张图片

点击克隆/下载中的复制可以获取该仓库的地址

2.邀请其他开发人员

前面已经在码云上创建了自己的远程仓库,目前仓库成员只有自己一个人(身份为管理员)。在企业实际开发中,一个项目往往是由多个人共同开发完成的,为了使多个参与者都有权限操作远程仓库,就需要邀请其他项目参与者成为当前仓库的成员

2.1 进入仓库管理中心,点击仓库成员管理

Git实操(超详细)_第4张图片

2.2 直接添加成员,输入成员在gitee的邮箱地址

Git实操(超详细)_第5张图片

2.3 输入邮箱后,自动提示码云用户信息,确定后点击添加

Git实操(超详细)_第6张图片

2.4 确定成员信息,点击提交

Git实操(超详细)_第7张图片

2.5 被邀请人员,自己登录gitee.com,点击右上角通知,然后进入私信列表,然后点击确认加入

Git实操(超详细)_第8张图片

3.Git常用命令

3.1 Git环境配置

3.1.1 下载与安装

下载地址: Git - Downloads

Git实操(超详细)_第9张图片

双击下载的安装文件来安装Git。安装完成后在电脑桌面(也可以是其他目录)点击右键,如果能够看到如下两个菜单则说明Git安装成功。

Git实操(超详细)_第10张图片

3.1.2 基本配置

当我们将修改的代码提交到本地仓库的时候Git要求必须要提交用户的名称和邮箱

  • git config --global user.name “你的name”

  • git config --global user.email "你的邮箱"

  • git config --global credential.helper store # git push的时候记住用户名和密码

 以上配置信息默认存储在用户目录下,如果设置错误,可以删除以下如图文件,重新操作以上命令即可。

Git实操(超详细)_第11张图片

查看配置信息

git config --list

git config user.name

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

3.2、获取本地仓库(可以单独存在)

要使用Git对我们的代码进行版本控制,首先需要获得构建本地仓库

通常有两种方式:

在本地初始化一个Git仓库

从远程仓库克隆一个仓库

3.2.1 在本地初始化一个Git仓库

在电脑的任意位置创建一个空目录(例如test)作为我们的本地Git仓库

进入这个目录中,点击右键打开Git bash窗口

执行命令git init如果在当前目录中看到.git文件夹(此文件夹为隐藏文件夹)则说明Git仓库创建成功

3.2.2 从远程仓库克隆一个Git仓库

创建一个空的文件夹,右击打开Git Bash

可以通过Git提供的命令从远程仓库进行克隆,将远程仓库克隆到本地

        Git实操(超详细)_第12张图片

 

命令为: git clone 远程Git仓库地址

远程Git仓库地址有两种形式,一种是HTTPS协议(HTTP安全协议),另一种是SSH协议(安全外壳协议)。

注意:HTTPS协议如果登录私有库必须提供用户名及密码。

Git实操(超详细)_第13张图片

        clone 私有库(HTTPS协议)

Git实操(超详细)_第14张图片

clone 公开库(HTTPS协议)

无需提供用户名及密码

Git实操(超详细)_第15张图片

查看,cd到克隆的文件夹,可以看到,master主线,在clone的时候同时帮我们checkout检出

Git实操(超详细)_第16张图片

3.3、操作本地仓库

3.3.1 创建一个需要提交的文件

在该仓库下创建a.txt

3.3.2 查看当前状态

命令形式:git status [-s]

Git实操(超详细)_第17张图片

3.3.3、添加工作区到暂存区

命令形式:git add 单个文件名|通配符 ( . 代表全部文件)

添加一个或多个文件到暂存区

Git实操(超详细)_第18张图片

再添加一个b.txt,然后打开a.txt进行内容修改,最后再命令窗口输入git status

Git实操(超详细)_第19张图片

提交所有git add .

取消已跟踪文件(只能将暂存区的撤销回到工作区)

命令形式:git reset 单个文件名或通配符 ( . 代表全部文件)

撤销当前文件或全部内容到修改之前的状态

Git实操(超详细)_第20张图片

Git实操(超详细)_第21张图片

3.3.4、提交暂存区到本地仓库

命令形式:git commit -m '注释内容' 提交暂存区内容到本地仓库的当前分支,"A"代表“Apend:添加”

注意:如果前面步骤中没有配置用户名和邮箱,这里会commit会让你重新配

Git实操(超详细)_第22张图片

3.3.5、查看日志文件

命令形式:git log

Git实操(超详细)_第23张图片

3.3.6、添加文件至忽略列表

一般我们总会有些文件无需纳入Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以在工作目录中创建一个名为 .gitignore 的文件(文件名称固定),列出要忽略的文件模式。下面是一个示例:

Git实操(超详细)_第24张图片

一定在工程初始化时,提前准备好需要忽略的文件列表(例如.idea文件夹、taget文件夹)

例如:模仿项目生成的target文件夹,仓库在目录下创建target文件夹,tartget文件夹下创建A.class文件

 Git Bush窗口中输入命令git status -s

在.gitignore文件中添加忽略target/,再次输入git status -s,效果立竿见影

本地初始化的Git仓库和远程克隆的的GIt仓库的区别在于,本地仓库没有和远程仓库做关联(所以不推荐使用本地初始化Git仓库)

3.4、操作远程仓库

3.4.1 添加远程数据库

此操作是先初始化本地库(创建一个空的文件夹),然后与已创建的远程库进行对接(不推荐,一般都是现在远程仓库创建项目,再克隆到本地)。

命令形式: git remote add <远端名称> <仓库路径>

远端名称,默认是origin,取决于远端服务器设置

仓库路径,从远端服务器获取此URL

3.4.2、查看GIt仓库关联的远程仓库

命令形式:git remote

如果是远程仓库克隆生成的Git仓库,会显示关联的远程仓库,

Git实操(超详细)_第25张图片 命令形式:git push 【remote name】【branch name】

【remote name】:远程仓库名:通过git remote查看的结果

【branch name】 :分支,master

推送前建议把工作区的内容都提交到本地仓库

当你想分享你的代码时,可以将其推送到远程仓库。

Git实操(超详细)_第26张图片

Git实操(超详细)_第27张图片合并冲突模拟和解决

用户推送之前,需要先pull远端仓库,如果发现提交版本不一致,出现如下错误:

Git实操(超详细)_第28张图片 

 

错误模拟:

1.重新从远程克隆我们刚已经提交的仓库到第二个Git仓库,取名随意,例如other-git

2.在other-git中打开Git Bush通过命令克隆远程仓库study-git

 Git实操(超详细)_第29张图片Git实操(超详细)_第30张图片Git实操(超详细)_第31张图片

 

修改第一个仓库中的a.txt,例如添加"哈哈",然后添加到暂存-本地-推送到远程仓库

修改第二个仓库other-git中的a.txt,添加"嘿嘿",然后添加到暂存-本地-推送到远程仓库

原因:Git规定如果远程仓库的内容改变了,本地仓库Push前要先Pull(不仅fetch抓取并且merge合并了),进行内容合并,而且如果合并冲突,不能在远程仓库解决,必须Pull拉取后在本地解决合并冲突

修订错误,在other-git的Git Bush中先通过命令git pull

Git实操(超详细)_第32张图片Git实操(超详细)_第33张图片

 

查看other-git中的a.txt,发现了合并的冲突

Git实操(超详细)_第34张图片Git实操(超详细)_第35张图片

 

  • HEAD:代表你的代码

  • ======下是别人的代码

  • d7dec9f84...:代表你提交的编码

错误解决合并冲突示范

将别人的代码去掉,保留我自己的,然后重新add->commit->push,此时如果其他组员需要push,他在push前正常先pull,然后发现pull后自己的"哈哈"被“嘿嘿”替代了!这样组员的矛盾就产生了

3.4.4、从远程仓库克隆

此操作是先创建远程库,本地Clone,然后在基于clone的本地库进行操作,建议按此方式

此章节内容,3.2.2已操作过。

3.4.5、从远程仓库中抓取和拉取

抓取 命令形式:git fetch【remote name】【branch name】 (不推荐)

git fetch 是从远程仓库获取最新版本到本地仓库,不会自动merge

合并远程分支内容到当前,命令形式: git merge【remote name】【branch name】

 Git实操(超详细)_第36张图片Git实操(超详细)_第37张图片

 

拉取 命令形式:git pull【remote name】【branch name】 (推荐)

操作命令之前,务必把工作区的内容添加到暂存区在拉取代码。

Git实操(超详细)_第38张图片

3.4.6、解决合并冲突

 

在一段时间,A、B用户修改了同一个文件,且修改了同一行位置的代码,此时会发生合并冲突。

A用户在本地修改代码后优先推送到远程仓库,此时B用户在本地修订代码,提交到本地仓库后,也需要推送到远程仓库,此时B用户晚于A用户提交,故需要先拉取远程仓库代码,经过合并后才能推送代码。在B用户拉取代码时,因为A、B用户同一段时间修改了同一个文件的相同位置代码,故会发生合并冲突。(4.4.3已经演示)

A用户修改代码推送到远程仓库

Git实操(超详细)_第39张图片

B用户修改代码提交到本地仓库

B用户修改代码准备推送到远程仓库

Git实操(超详细)_第40张图片 

Git实操(超详细)_第41张图片 

git默认把冲突的代码合并在一起,并做特殊标记,如图所示

Git实操(超详细)_第42张图片 

解决冲突是由开发人员根据实际情况,把上面的冲突部分,进行修订。比如:

Git实操(超详细)_第43张图片 

完成修订后,把代码保存到暂存区,然后提交到本地仓库,冲突解决完毕。

Git实操(超详细)_第44张图片 下一篇章(如何在idea中使用git)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(git,github)