GIT--指南--环境搭建--常见问题解决--持续更新

本文尽量以初学者的角度让你快速掌握GIT参与多人协作,由简单到复杂,如果你不是初学者,请跳过前面的基础部分。
GIT--指南--环境搭建--常见问题解决--持续更新_第1张图片
跟我加入新时代代码协作吧

本文参考:

廖雪峰老师的GIt教程:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

Git官方文档
https://git-scm.com/book/zh/v1/

是什么

Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件
--------------------------------------------------------------------------------------来源-百度百科

Git是目前世界上最先进的分布式版本控制系统(没有之一),作为新时代优秀青年,怎么能不接触这么高端大气上档次的玩意,那你肯定又要问

什么是版本控制系统?

OK?举个例子,如果你用过Microsoft Word写过文章,文档或者是什么长篇大论,那你肯定会有这种经历

想删除一个段落,却又怕无法找回,怎么办呢,先把当前的版本另存为另一个文件,然后删完接着来写,接着再遇到这种问题,再另存为。

所以你的word变成了这个样子:


GIT--指南--环境搭建--常见问题解决--持续更新_第2张图片
word

过了一周,你想找回被删除的文字,但是已经记不清保存在哪个文件里面了,只能一个一个去寻找,隔着屏幕我都能知道你这会的心情。

OK,以这个文档为基础,再想下,公司的小王要和你一块整理这个文档,于是你把你现在已经写好的这部分发给他了,你俩一块来写,小王写好后,把文件传给你,这个时候,发动你聪明的小脑筋,你得知道他修改了哪里,他新增了什么,在哪个地方新增的,怎么和你后来自己写的整合,是不是想想都头疼?

没关系,这也是Git出现的原因,记录文件在每个版本的改动信息,不用个人手动管理。

那我们就开始吧

安装
1.在Linux上安装Git

因为我没有接触过Linux,这段内容是从廖雪峰老师的网站直接复制来的,各位如果有问题还希望及时留言

首先,你可以试着输入git,看看系统有没有安装Git:

$ git
The program 'git' is currently not installed. You can install it by typing:
sudo apt-get install git

像上面的命令,有很多Linux会友好地告诉你Git没有安装,还会告诉你如何安装Git。
如果你碰巧用Debian或Ubuntu Linux,通过一条sudo apt-get install git就可以直接完成Git的安装,非常简单。

老一点的Debian或Ubuntu Linux,要把命令改为sudo apt-get install git-core,因为以前有个软件也叫GIT(GNU Interactive Tools),结果Git就只能叫git-core了。由于Git名气实在太大,后来就把GNU Interactive Tools改成gnuit,git-core正式改为git。

如果是其他Linux版本,可以直接通过源码安装。先从Git官网下载源码,然后解压,依次输入:./config,make,sudo make install这几个命令安装就好了。

2.Mac OS 、Windows通用安装Git
  1. 下载git 文件 地址:https://git-scm.com/downloads
下载
  1. 下载完之后双击进行安装。


    GIT--指南--环境搭建--常见问题解决--持续更新_第3张图片
  2. 选择安装目录


    GIT--指南--环境搭建--常见问题解决--持续更新_第4张图片
    选择安装目录
  3. 选择组件


    GIT--指南--环境搭建--常见问题解决--持续更新_第5张图片
    选择组件
  4. 开始菜单目录名设置


    GIT--指南--环境搭建--常见问题解决--持续更新_第6张图片
    开始菜单目录名设置
  5. 使用命令行环境


    GIT--指南--环境搭建--常见问题解决--持续更新_第7张图片
    使用命令行环境
  6. 以下三步默认,直接点击下一步


    GIT--指南--环境搭建--常见问题解决--持续更新_第8张图片

    GIT--指南--环境搭建--常见问题解决--持续更新_第9张图片

    GIT--指南--环境搭建--常见问题解决--持续更新_第10张图片
  7. 安装完成

GIT--指南--环境搭建--常见问题解决--持续更新_第11张图片
安装完成
  1. 检测是否安装完成
    回到电脑桌面,鼠标右键点击,如果看到如下图两个Git单词则安装成功
GIT--指南--环境搭建--常见问题解决--持续更新_第12张图片
检测

也可打开命令行工具,输入以下指令

git --version

按下回车如果正确运行,就能得到你电脑上安装的Git的版本号,则安装成功,如下图:


GIT--指南--环境搭建--常见问题解决--持续更新_第13张图片
image.png

安装完成进行全局配置:
打开命令行输入

git config --global user.name "userName"  //用户名
git config --global user.email email      //邮箱

因为Git是分布式版本控制,所以多人写作时候,进行操作,你必须自报家门,这样的话,在进行操作的时候,远程仓库才知道是谁,做了什么事。

OK,这样的话,我们就正确的安装和配置好了基本的GIT环境。接下来,我们就简单的讲解下Git的工作流程。

GIT工作流程
  • 克隆 Git 资源作为工作目录。
  • 在克隆的资源上添加或修改文件。
  • 如果其他人修改了,你可以更新资源。
  • 在提交前查看修改。
  • 提交修改。
  • 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。
如下图
GIT--指南--环境搭建--常见问题解决--持续更新_第14张图片
Git工作流程
创建版本库

什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录:

$ mkdir gitTest
$ cd gitTest
$ pwd
/git/gitTest

pwd命令用于显示当前目录。在我的Mac上,这个仓库位于/git/gitTest。

如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。

第二步,通过git init命令把这个目录变成Git可以管理的仓库:

$ git init
Initialized empty Git repository in /git/gitTest/.git/

这样的话会在仓库的目录内生成一个.git的文件,默认隐藏,在一些特殊的编辑器内可以显示,里面的信息是跟踪管理版本库的,如没有必要,请不要修改。

OK,接下来,我们就来看看GIT的强大力量吧。

我们在刚才建好的文件夹下,创建一个 gitTest.txt 文件

GIT--指南--环境搭建--常见问题解决--持续更新_第15张图片
gitTest

在这个文件中输入以下内容

这是一个git测试文件

和把大象放到冰箱需要3步相比,把一个文件放到Git仓库只需要两步。

第一步,用命令 git add 告诉Git,把文件添加到仓库:

$ git add gitTest.txt

执行上面的命令,没有任何显示,这就对了。

第二步,用命令 git commit 告诉Git,把文件提交到仓库:

$ git commit -m "修改的描述 "
[master (root-commit) ea48624] 修改的描述
 1 file changed, 1 insertion(+)
 create mode 100644 gitTest.txt

简单解释一下 git commit 命令,-m 后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。

git commit 命令成功执行后会告诉你,一个文件被更改,也就是我们新添加的 gitTest.txt 文件,插入了一行内容,也就是里面的(这是一个git测试文件)。commit命令可以一次提交很多文件,取决于你添加(add)多少文件到仓库。当然你也可以使用 git add . 讲全部已改动的文件一次性全部添加,然后再使用commit一次性全部提交,这个当然取决你自己了

ok,到现在我们已经成功的添加并提交了一个 gitTest.txt 文件,现在我们继续改动这个文件,再添加一行文字:

Hello,world
这是一个git测试文件

熟悉的hello,world,现在我们运行 git status 命令看看结果。

$ git status
On branch master
Changes not staged for commit:
  (use "git add ..." to update what will be committed)
  (use "git checkout -- ..." to discard changes in working directory)

    modified:   gitTest.txt

no changes added to commit (use "git add" and/or "git commit -a")

git status 命令可以让我们时刻掌握仓库当前的状态,上面的命令告诉我们,gitTest.txt被修改过了,但还没有准备提交的修改。

虽然Git告诉我们readme.txt被修改了,但如果能看看具体修改了什么内容,自然是很好的。比如你休假两周从国外回来,第一天上班时,已经记不清上次怎么修改的gitTest.txt,所以,需要用git diff这个命令看看:

$ git diff
diff --git a/gitTest.txt b/gitTest.txt
index cb0f561..cbbf0d5 100644
--- a/gitTest.txt
+++ b/gitTest.txt
@@ -1 +1,2 @@
+hello,world
 这是一个git测试文件
\ No newline at end of file

上面的命令输出的意思是,我们在第一行添加了一个"hello,world",知道了修改什么之后,就可以放心的提交了,提交修改文件和刚才我们做的提交新文件是一样的步骤

第一步是 git add gitTest.txt

$ git add gitTest.txt

同样没有任何提示,接下来我们在提交之前,先进行一下 git status 的操作,看下当前的仓库状态

$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD ..." to unstage)

    modified:   gitTest.txt


git status 告诉我们,将要被提交的修改包括readme.txt,下一步,就可以放心地提交了:

$ git commit -m "提交修改"
[master 89fe590] 提交修改
 1 file changed, 1 insertion(+)

提交后我们再执行 git status 命令,查看当前仓库的状态:

$ git status
On branch master
nothing to commit, working tree clean

Git告诉我们当前没有需要提交的修改,而且,工作目录是干净(working tree clean)的

OK,学到简单的添加、提交操作后,我们来直接上手项目,看看更多的git操作,

开始的时候说过,GIT是多人协作分布式管理系统,既然是多人协作,自然会有一个远程的仓库,比如一个电脑24小时开机来充当服务器的角色,其他的每个人都可以从这个"服务器"仓库克隆一分到自己的电脑上来进行操作,然后把各自的提交推送到这个"服务器"上,也可以从服务器仓库中拉取别人的提交。

我们完全可以自己搭建一个这样的GIT服务器,但是,为了学习GIT搭一个服务器,完全是小题大做,也没有必要,于是,大家一定能够想到一个耳熟能详的名字

GitHub

这个网站就是提供Git仓库托管服务的,所以,只要注册一个GitHub账号,就可以免费获得Git远程仓库

但是现在为了学习便利,我们来采用开源中国的码云来进行举例。
关于码云的介绍,和码云和github的区别请参考

https://www.zhihu.com/question/50212423

言归正传,注册码云账号并登录,会看到类似以下界面


GIT--指南--环境搭建--常见问题解决--持续更新_第16张图片
码云

接着,按以下步骤新建一个项目


GIT--指南--环境搭建--常见问题解决--持续更新_第17张图片
新建项目

输入完成后,点击完成创建,会自动生成项目并且跳转到一个类似这样的页面


GIT--指南--环境搭建--常见问题解决--持续更新_第18张图片
创建项目

然后,如图所示,可以查看项目的git地址


GIT--指南--环境搭建--常见问题解决--持续更新_第19张图片
git地址

OK,这样的话,我们就已经在码云上创建了一个远程仓库,在实际操作中我们要把远程仓库和本地的仓库关联起来,这样的话,才能在本地仓库中向远程仓库上传或下载东西,怎么做呢?打开命令行,在本地仓库的目录中输入:

$ git remote add origin git@gitee:zyq9613/gittest.git

解释下,上面的代码,git remote add是git关联的命令,后面的[email protected]大家都知道了吧,对了,正是码云,github对应的是[email protected],在这里我们用的是开源中国的码云举例,再往后的zyq9613则是我在码云的账号,大家注意,这一步一定要换成自己的账号,否则你本地关联的就是我的远程库,关联倒是不要紧,但是你以后是肯定推送不上去的,因为我的白名单中没有你的SSH公钥。OK,扯远了,再往后面的gittest.git就是我们刚才创建的远程仓库。

OK,这样我们就关联上了远程仓库,怎么验证是否成功关联呢 ?打开命令行,输入:

$ git remote -v
origin  [email protected]:zyq9613/gittest.git (fetch)
origin  [email protected]:zyq9613/gittest.git (push)

这个命令是查看关联的远程库的信息的,到这里我们就成功的将本地仓库和远程仓库关联了,然后就可以快乐的协作开发了。

总结下:

全局配置

git config --global user.name "userName"  //用户名
git config --global user.email email      //邮箱



创建项目

md dirName            //创建文件夹
cd dirName            //进入文件夹
git init              //初始化git
git clone git地址     //从远程仓库复制项目到本地




提交代码

git status           查看所有已修改但未提交的文件
git add .            将所有已变化的文件提交到暂存区,等待提交,可通过git add path  单个提交文件 path是路径
git commit -m "备注"  以add为索引将修改的代码添加到 仓库中

git pull --rebase origin master   将本地代码与远程仓库代码合并

git push -u origin master         上传合并后的代码(第一次上传使用"-u"进行本地和远程关联,以后不用)

完成


Windows可视化工具
https://www.sourcetreeapp.com/  


git常用指令及错误处理方法
https://www.cnblogs.com/mantou811/p/6688517.html

你可能感兴趣的:(GIT--指南--环境搭建--常见问题解决--持续更新)