Ubuntu中Linux操作系统上git教程完整易懂版

安装git

  • sudo apt-get install git

配置git的参数

git config --global user.name “Zhangsan”
git config --global user.email “2899423237@qq.com”
输入上述两个命令后会在家目录中出现 .gitconfig 文件

创建一个仓库

mkdir git_test
cd git_test
git init
如此仓库就建好了,我们现在可以在这个仓库里面进行版本控制

进行版本控制

先在git_test目录中创建一个文件
touch code.txt
vim code.txt
在文件中写入一句话(随意,比如 This is the first line)
保存并退出

然后输入以下两个命令:
git add code.txt 将code.txt从工作区加入到暂存区,在git_test目录中的操作就是在工作区中操作
git commit -m “版本1” 将暂存区中的内容全部加入到版本控制

查看版本信息

git log 可以看到提交的版本

更新版本

继续打开文件 code.txt 再写入一行文字
保存并退出

输入命令:git status 可以查看我们的操作,提示中告诉我们文件code.txt被修改了

git add code.txt
git commit -m “版本2”

git log 查看版本信息,可以发现我们已经是版本2了

版本回退

打开文件code.txt
再写入一行文字
保存并退出
git add code.txt
git commit -m “版本3”

git log 可以看到我们现在是在版本3

现在我想回到版本2,怎么办呢
办法就是执行下面命令
git reset --hard HEAD^
这时我们就回退到了上一个版本
git log 查看版本信息可以发现我们处于版本2

如果现在发现我们要重新回到版本3怎么办呢
这时就需要版本号了(版本号就是commit后面的一串数字,我们只要前面的7位就够了)

输入以下命令回到版本3
git reset --hard 2e3a32(注意:这是版本3的版本号,根据自己电脑里的版本号写,不要抄我的)

git log 发现现在我们回到版本3了

如果我们关闭了当前的命令行,我们不就看不到版本号了吗,这该怎么办呢,当然有办法,按照以下命令可以找回信息
git reflog
可以发现我们前几次的操作的版本的版本号都在,根据版本名可以找回版本号,再根据命令:git reset --hard 2e3a32回到版本3

比较版本的不同之处

git diff HEAD HEAD^
执行之后会看到当前版本和前一个版本的区别。
我们可以比较任意两个版本的区别

撤销修改

打开文件code.txt
写入一行后保存并退出

如果我们发现写错了,不想要新加入的内容了怎么办呢

第一种情况:我们只是修改了文件,还没有执行后续的操作(没有执行git add code.txt和git commit -m “版本4”)
这时我们可以执行以下命令:
git checkout – code.txt
注意命令中是两个“-”
输入命令
cat code.txt
这是我们可以看到文件中最新加的一行没有了

第二种情况:
我们已经加入到了暂存区(即我们执行了git add code.txt但是没有执行git commit -m “版本4”)
这时我们要撤销修改就要把文件先从暂存区中退出来
git reset HEAD code.txt
这是文件就回到了工作区
然后就可以和第一步的操作一样了
git checkout – code.txt

输入命令cat code.txt看以看到修改已经撤销

第三种情况:
我们已经提交版本控制了(即已经执行了git add code.txt 和git commit -m “版本4”)
这时怎么办呢
很简单,我们把版本回退到上一个版本就好了

分支概念

默认情况下我们是在主分支上,即master分支上,系统默认生成主分支(master分支)
但是一般我们工作并不是在主分支上工作的,而是在一个其他分支上工作的,这便于独立工作,通过指针HEAD指向来确定我们处于哪一个分支,分支之间是可以合并的,这便于信息的合并,这很重要。

分支的创建

git branch dev
dev是我们自己创建的一个分支
git branch 查看分支,可以发现现在有两个分支,一个是master分支,一个是dev分支。其中 * 号代表HEAD指针,表示我们现在处于的分支

分支的切换

git checkout dev
执行上述命令后,我们便进入了dev分支
git branch 可以看到我们现在处于dev分支(看 * 号的指向)

分支的删除

git branch -d dev
这时我们就删除了分支dev了
注意:我们不能删除自己所在的分支,要想删除分支dev我们就需要先进入到其他分支。

在dev分支上的版本控制

现在默认我们了执行我所写的前面的步骤(即dev分支已经被删除了)
创建并进入分支dev:命令是git checkout -b dev(这个命令一步到位,相当于执行了git branch dev和git checkout dev两个过程)
打开文件code.txt,写入一行文字
保存并退出

git add code.txt
git commit -m “dev版本1”

执行上述命令后执行
git log 可以发现dev版本1已经加入了版本控制

版本控制不仅仅是控制文件的修改,我们增加文件也是可以控制的。

比如:
touch code2.txt (注意要在git_test文件夹内创建)
创建一个新的文件,打开文件code2.txt,写入一行文字
保存并退出

git status
电脑提示有未跟踪的文件 code2.txt
我们可以将文件code2.txt也加入到版本控制

git add code2.txt
git commit -m “dev版本2”

如果同时修改了文件code.txt和code2.txt(在两个文件中个写入一行,保存并退出)这时如果要加入版本控制,应执行
git add code.txt code2.txt
git commit -m “dev版本控制3”

分支的合并

如何将分支上的修改合并到主分支上呢,当然有办法,下面讲一下
目前我们是在dev分支上,我们要先切换到master主分支上去
执行git checkout master
执行命令git branch查看以下目前所处的分支,发现我们现在处于master分支

第一种合并情况:
git merge dev

执行上述命令后,分支dev上的版本内容就已经合并到主分支上了。

这种合并方式是没有冲突的,所以是快速合并,如果没有冲突那么git默认帮我们进行快速合并 。

第二种合并方式:
我们在分支master上修改文件code.txt,保存并退出
然后提交版本控制(执行git add code.txt 和 git commit -m “master修改”)

然后切换到分支dev(执行git checkout dev)
修改文件code2.txt,保存并退出
然后提交版本控制(执行git add code.txt 和 git commit -m “dev修改”)

然后我们切换到master主分支,执行命令git merge dev进行分支合并,发现合并成功。但是这时不是快速合并,并需要我们添加版本说明信息,从而git为我们自动生成一个新版本,并提交控制。

第三种合并方式:

我们在master分支中修改文件code.txt(比如添加一行)
然后我们提交版本控制(执行git add code.txt和git commit -m “master 修改code.txt”)
然后切换到分支dev,同样修改文件code.txt(也添加一行,不同与master中的内容)
提交版本控制(执行git add code.txt和git commit -m “dev 修改code.txt”)

然后切换回分支master,执行分支合并:git merge dev
系统提示合并失败
我们打开文件code.txt
可以发现git已经把冲突内容写入了文件中,我们可以修改冲突部分,然后执行命令git add code.txt 和 git commit -m “解决冲突后的合并版本”

合并部分完成!

与github的交互

搜索GitHub官网,注册后登录
首先创建一个仓库:
命名为github_learning

具体创建方法请参见另一篇文章。

仓库创建好之后,获取ssh克隆地址
进入Linux命令行,进入家目录,执行以下命令
ssh-keygen -t rsa -C “github注册的邮箱(比如2899434342@qq.com)”
对于系统提示,直接全部按enter键就行了

然后进入文件夹 .ssh
即执行 cd ~/.ssh
可以看到文件中有两个文件,一个是id_rsa和id_rsa.pub
第一个文件是我们的私钥,只能我们自己知道,第二个文件是公钥,是给别人用的,我们复制公钥中的内容,然后将其粘贴到github网站上的SSH key部分,然后启用就行了

进入命令行,进入家目录
即执行 cd 命令就行
执行以下命令:
git clone git@github.com:xxx/github_learning.git(这一部分点击code可以获得,xxx是登录名)

执行完成之后,家目录下会出现github_learning文件夹,进入该文件夹,即进入了该仓库。
我们现在默认处在主分支下(master或是main分支)
创建文件code.txt,写入一行后保存并退出。

添加版本控制:
git add code.txt
git commit -m “版本1”

将该版本上传至远程github仓库中。

首先关联远程库:
git remote add origin git@github.com:xxx/github_learning.git

执行成功后就可以与远程库进行交互了

执行
git push
之后,该版本便上传到了GitHub上了。

那如何从GitHub上获取代码呢
很简单

我们先在GitHub上建一个文件,写入一行文字,保存为一个版本。

然后进入命令行
执行
git pull
之后,文件便被下载下来了

上传一个分支:
首先在命令行中创建一个分支(注意是在github_learning 库中创建)
git branch dev
git checkout dev

创建一个文件code1.txt
写入一行后保存并退出

git add code1.txt
git commit -m “dev 版本1”

切换回主分支
git checkout master

执行
git push origin dev
之后

分支就上传到了GitHub。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值