GIT使用手册(历史最详细)

GIT入门教程

1.Git安装

1.1.在windows上安装git

下载git安装包地址:https://git-scm.com/downloads

双击安装即可,安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!

在这里插入图片描述

1.2.在centos上安装git

执行命令:yum –y install git

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h52tGrkU-1578646785886)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps58.jpg)]

1.3.设置用户信息

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

执行以上命令后默认在C:/User/$USER目录下生成.gitconfig文件。

命令当中–global表示你所有的项目都会默认使用这里配置的用户信息如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3b5Jasee-1578646785888)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps59.jpg)]

2.创建Git仓库

2.1.创建仓库

首先创建一个空目录,然后进入这个目录执行git init就完成了本地仓库的创建。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xmPaJ7PE-1578646785889)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps60.jpg)]

创建好本地库后在库目录中可以看到.git文件夹,所有 Git 需要的数据和资源都存放在这个目录中。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-by2MXXup-1578646785890)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps61.jpg)]

3.Git基本操作

3.1.添加文件到git库

首先创建一个文件夹叫myproject,里面新增一个文件HelloWord.java,然后我们用:

git add myproject/HelloWord.java

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gFEsbMOT-1578646785891)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps62.jpg)]

回车后如果没有提示信息表示添加成功。

然后通过****git commit -m**** ****“my frist commit”****把文件提交到仓库,提交时一定要加上-m参数用于添加描述,如果不加会提示Aborting commit due to empty commit message.

提交成功后会提示1 file changed。

这里说明一下git提交文件时需要两步,第一步先把文件add到暂存区,这里可以多次添加或一次添加多个文件,然后再commit到仓库中。

3.2.修改文件并提交

首先我们修改HelloWord.java文件,目录会显示红色,当完成提交后目录会变回绿色。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jzuf0nh6-1578646785893)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps63.jpg)]

我们可以通过****git status****命令来查看当前仓库状态

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9l8h7ygF-1578646785894)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps64.jpg)]

我们可以看到提示我们有文件被改动而且没有提交。

然后我们重复上一节提交文件操作后文件变回绿色

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qKTWrIxX-1578646785895)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps65.jpg)]

3.3.回归版本

当我们提交错误或是提交出现异常时,我们需要回归版本到之前的某个时间。

首先我们可以通过****git log****查看文件的操作日志

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A4iESN6q-1578646785896)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps66.jpg)]

首先日志是按时间倒序排,git用HEAD表示当前版本,commit后面跟着一长串的字符是git每次提交的版本ID

然后我们用****git reset --hard commitId****可以把文件回归到具体的某一个版本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OXEcSNc2-1578646785897)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps67.jpg)]

回归到某一版本后再查看日志会发现第二次提交己经没有了。注意commitID可以是前几位,不需要全写。节省了复制粘贴的麻烦。

如果回归后还是错误的或是后悔了怎么办,还能回到之前的最新版本吗?

我们可以用****git reflog****命令查看之前的每一次命令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9Zl8B3Yz-1578646785898)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps68.jpg)]

如图我们可以看到回归前的版本号是cc8112b,那么我们同样可以用****git reset cc8112b****回到最新版本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ntEvz5dg-1578646785899)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps69.jpg)]

3.4.撤销修改

如果你的文件己经add了,但是没有commit,想撤回来该怎么办呢?git提供丢弃暂存区修改功能,我们使用****git checkout --fileName**** 就可以让文件回到最近一次add或commit时的状态。
在这里插入图片描述

3.5. *删除文件*

当你需要删除一个文件时,如果只在本地删除会导致本地与仓库不一致,面对这种情况git提供****git rm fileName****命令删除仓库文件,同时不要忘了commit。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jgrHxz6O-1578646785902)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps71.jpg)]

4. *远程仓库GitLab*

4.1. *GitLab服务器*

输入gitLab服务器地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-34Eo2zdk-1578646785903)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps72.jpg)]

4.2. *创建远程仓库*

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ltZ3Xm64-1578646785905)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps73.jpg)]

登陆GitLab后会显示以上页面,我们点击Create a project

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RszOhSMg-1578646785906)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps74.jpg)]

Visibility Level这里我们选择Private私钥,如非公有项目出于对代码安全考虑一般我们选择私钥就好,然后我们点击Create project。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZbgwXFZB-1578646785907)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps75.jpg)]

出现以上页面说明创建工程成功了。

4.3. *添加SSH Key*

创建远程仓库成功后页面会提示:

You won’t be able to pull or push project code via SSH until you add an SSH key to your profile

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yvjsq3nF-1578646785908)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps76.jpg)]

我们可以点进去或是User Settings > SSH Keys进到添加页面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ad2HwrsH-1578646785910)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps77.jpg)]

要添加SSH key我们要去生成key值,我们回到自己电脑找到Git GUI并打开它

![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eF6uI1ND-1578646785911)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps78.jpg)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EaiCsEZE-1578646785912)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps79.jpg)]](https://img-blog.csdnimg.cn/20200110170840226.png

Repository > Open

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9BoOayAm-1578646785913)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps80.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EaFIC3xc-1578646785914)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps81.jpg)]

Help > Show SSH Key 点击Generate Key

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dwLxYQpG-1578646785915)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps82.jpg)]

密码可以自己设置或是直接设置为空,如果设置密码会在之后每次同步远程仓库时要求输入密码,如果嫌麻烦可以设为空。我们可以在C:\Users$USER.ssh目录下看到我们生成的文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ynKGmPrM-1578646785916)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps83.jpg)]

我们打开id_rsa.pub文件,复制里面的全部内容粘帖到gitLab上

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lsuX73Ex-1578646785917)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps84.jpg)]

点击Add key完成添加。

4.4. *关联远程仓库*

目前我们本地有一个仓库,GitLab上也有一个仓库,这个时候就体现出git分布式版本控制的时候了,我们只需要把本地git仓库关联上远程仓库,通过提交上传就可以后别人享你的代码,而你本地仓库完全不影响你开发,这和集中式的版本控制有本质上的区别。

那么我们要怎么让本地仓库关联远程仓库呢?只需要执行git命令:

在这里插入图片描述

在这里插入图片描述

4.5. *同步远程仓库*

第一次同步的时候只需要执行git命令

****git push -u origin master #****Master表示当前主分支

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mUtd29mi-1578646785922)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps87.jpg)]

提交成功后我们可以到GitLab上查看我们的远程仓库看是否同步成功

在这里插入图片描述

4.6. *克隆远程仓库*

除了上面那种从本地仓库关联远程仓库的做法外,我们还可以直接在GitLab上新建一个工程,然后再通过克隆的方式同步到本地,git提供****git clone xxx.git****命令进行克隆

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JiCMTsAH-1578646785925)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps89.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YBy9t2fa-1578646785926)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps90.jpg)]

4.7. *GitLab添加成员*

仓库创建完成后,我们需要添加我们的小伙伴到我们的项目中来,之前创建仓库时我们的工程是私钥的,别人看不到,我们这时候就需要指定添加项目成员进来,这样就可以和小伙伴愉快的玩耍了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7eNHnC76-1578646785927)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps91.jpg)]

选择成员,选择角色,然后点击Add to project完成添加。

这里需要注意的一点是,成员角色选Developer开发者,当成员提交代码到master时会提示成员没有权限提交,这时我们可以视项目情况来定是否给予这个权限,如果需要开通可以通过Settings > Repository > Protected Branches设置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TEP5i9CQ-1578646785928)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps92.jpg)]

点击Protect添加规则。

5. *Git分支管理*

5.1. *创建与合并分支*

当我们项目进行到一个里程碑时我们需要固化一个版本或者需要基于现有版本修复一个bug时,这个时候我们可以打一个分支用于存储或是修正。git提供****git checkout -b branchName*创建并切换分支,也可以创建分支*git branch name*再切换分支*git checkout name****.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bjZx4iyF-1578646785930)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps93.jpg)]

然后用****git branch****查看当前分支
在这里插入图片描述
现在我们己经切换了分支,然后我们在dev分支上进行修改并提交

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jq5DGdIt-1578646785932)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps95.jpg)]

现在我们的master分支和我们的dev分支己经不一致,当我们终于修改完bug需要把dev合并回master时该怎么办呢,我们需要先切换回master分支再合并dev分支到master分支

在这里插入图片描述

合并完成后我们可以选择是否删除分支,如果确认以后不需要这个分支了可以选择删,避免后期分支过多并且不好维护的情况发生,git提供删除分支命令****git branch -d dev****

在这里插入图片描述

5.2. *冲突解决*

当我们创建分支开发时,master分支也要推进,这种情况下两个分支就会产生冲突,我们创建一个分支然后修改,再切换回master分支再修改,再合并我们来看一下会发生什么。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ahoeO03J-1578646785949)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps98.jpg)]

然后我们打开HelloWord.java文件看会是什么情况

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1QsN3Rpg-1578646785952)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps99.jpg)]

Git采用<<<< ===== >>>>来表示冲突的部分,我们手动编辑解决冲突后再次提交

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WdCOzdvw-1578646785953)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps100.jpg)]

我们可以通过****git log --graph --pretty=oneline --abbrev-commit****命令来查看日志发现己经合并成功了。

6. *Git标签管理*

6.1. *创建标签*

在我们开发过程中有个小版本我想标识一下该怎么办呢,git提供标签功能****git tag name****

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-86uyGbWH-1578646785954)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps101.jpg)]

创建标签完成后可以****git tag****查看标签,需要注意的是标签是跟前commit走的,git可以指定commitId来给历史记录中的commit打标签。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OByCMKG6-1578646785956)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps102.jpg)]

6.2. *删除标签*

创建标签后我们可以通过git show tagname来查看标签详细信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-02V3s0Vh-1578646785957)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps103.jpg)]

如果我们发现标签打错了,或是想修改标签怎么办呢,git不提供直接update功能,但是我们可以先删后加,什么都阻档不了程序员的脚步。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O6Bh8R2D-1578646785958)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps104.jpg)]

如果需要把标签同步到远程仓库,我们可以通过****git push origin v1.0****命令同步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sw88aNUb-1578646785959)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps105.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-slLHoeQs-1578646785960)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps106.jpg)]

要删除远程仓库的标签可以在gitLab上直接操作,也可以通过命令

git push origin :refs/tags/v1.0

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wPsuIwQ0-1578646785961)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps107.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oLu7duPM-1578646785962)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps108.jpg)]

7. *忽略文件*

7.1. *忽略规则*

Java或python工程在开发过程中会生成很多.class、pyc编译文件或是build出来的临时jar包或者是.log文件,这些都不需要上传到git仓库的,那么我们怎么排除掉呢

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xzSgWqPa-1578646785963)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps109.jpg)]

在工程目录下生成一个.gitignore文件,配置规则如下:

# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

注意.gitignore文件放到工程目录下只在当前工程生效,你也可以把这个设置成全局的

git config --global core.excludesfile ~/.gitignore

8. *Git图形化客户端*

介绍了那么多git命令,大家经常用到的命令记住就好了,如果你不喜欢原生的命令行模式,别灰心,目前以经有好多款git图形化客户端任你选择

TortoiseGit

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nFZKBPzC-1578646785964)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps110.jpg)]

Eclipse – Egit

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0iSvpSEH-1578646785965)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps111.jpg)]

GitEye

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1g1IRi0f-1578646785966)(file:///C:\Users\002719\AppData\Local\Temp\ksohtml368184\wps112.jpg)]

还有很多不一一列举,有兴趣可以问度娘,总有一款适合你。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值