Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突

Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突


这篇是接着上篇分布式版本库——Windows下Git的环境部署以及在GitHub上开源自己的项目讲的,上篇主要是说用GUI来图形化界面操作,但是一般我们程序员也不会这么干,用命令又轻松又愉悦,所以,这里我就再开了一篇来专门说一下纯命令是怎么去操作的,但是要注意哦,其实廖雪峰老师的网站就是非常赞的学习资源哦!

我们还是先从安装开始吧,我上篇Ubuntu的配置博客也说了安装,这里我就三个平台一起讲吧!

一.Install

安装其实都是最简单的方法了

安装之后,我们在桌面右键有一个Git Bash Here

在终端输入

sudo apt-get install git

如果你是#的root权限的话,可以不用加sudo

  • X OS

    mac的系统安装虽说也是一条命令,但是他需要借助辅助的工具,当然,你也可以直接安装XCode,它就集成了Git,不过需要配置一番,我们作为android开发人员,这个xcode其实看个人兴趣吧,我们用另一种方式安装

  • http://brew.sh/

只要下载安装Homebrew,mac的终端就可以搜索安装软件了

输入

sudo brew install git

等待安装成功,检查是否安装成功的方式也很简单,只要输入

git version

查看他的版本就可以了

二.Clone

Clone就是从github上下载项目,我们在Github上新建一个项目,叫做GitTest吧!如果这一步不会操作的话,请移步:分布式版本库——Windows下Git的环境部署以及在GitHub上开源自己的项目

我们把这个链接给记住了

https://github.com/LiuGuiLinAndroid/GitTest.git

这里,我先在D盘新建一个git的文件夹,然后进入这个目录,直接右键打开Git Bash,然后输入

git clone https://github.com/LiuGuiLinAndroid/GitTest.git

就可以下载下来代码了

我们进入这个文件夹里面可以看到他只有一个文件README.md,我们输入

vim README.md

去访问他

这里vim是一个编辑的命令,我们推出这个vim环境只要输入

q!

就可以了

三.Commit

提交代码,我们先介绍一下Git的工作模式,其实吧,Git这么出名也是跟他的模式有关,而我们的章节,也是跟着他的模式走的

// add->commit->push

先是add,也就是把你要提交的代码先提交到缓存区,然后commit提交到本地的仓库,最后再push推送到远程仓库,也就是github上,这里,我们先对刚才那个README.md文件进行修改吧,我们编辑一下,加上一点文字

我们保存之后,刚才的绿色文件就变成了感叹号,说明已经有修改了,这点和SVN一样,我们回到命令行,这里,我们有一个很方便的命令

git status

来查看当前的状态

这里就提示你这个文件已经是红色的,改动了,需要提交吗?

所以,我们就输入

git add README.md

也就是添加到缓存区

他什么都没提示说明add成功了,这个时候我们再次查看一下状态,你就会发现

状态是绿色的了,Ok,这个时候我们就需要commit了,输入

git commit README.md

然后他会显示这样一个信息,这里是要你写一些说明,我就写了first commit

这里输入

x

保存退出

然后我们再次查看一下状态

果不其然,这里显示你有一个commit,需要push,也就是推送

四.Push

既然他友好的提示我们可以push,那我们就直接推送吧,只要输入

git push

即可,然后他会提示你输入账号和密码

我们输完之后,稍微等待一会儿,他们也自然会done的

到这里,我们的git的push就OK了,我们去github上看一下就明白了

五.Pull

这个就很好理解了,开原作者对自己的项目进行了一次修改,有新的东西了,我们就去更新一下, 也就去把代码拉下来,这样,我们在github上修改一下

现在的样子就是这样的了

这个很明显和我本地的不一样,所以我们就需要去pusll,输入

git pull

好的,下拉成功

我们可以用vim命令去查看一下

可以看到,代码也是拉了下来

六.版本回退

写代码写着写着发现自己入坑了,怎么办,而且代码还提交了,在队友还没有pull之前,赶紧版本回退,那该怎么做呢?我们可以这样,首先,我们输入

git log

来查看我们提交代码的记录

这里我们可以看到,我们第一次是系统初始化的,第二次也就是我们认为的提交,第三次,也就是我们pull的时候在github上提交的,我现在演示一下怎么退回到first commit

但是我们要注意,上图中,log日志黄色的一长串ID,这就是我们要注意的东西,我们只有通过这个ID才能版本回退,所以,这里我先拷贝一下first commit的ID:

 a0c401fcda58304938767820f35d6b4bcaad28db

好的,我们开始了,版本回退的命令是

git reset --hard a0c401fcda58304938767820f35d6b4bcaad28db

好的

他提示已经回退到first commit了,我们验证一下,只要看一下README.md里面的信息就可以,我们用vim命令去看

这里果不其然是显示第一次提交,说明我们已经成功的版本回退了,版本回退有风险,操作需谨慎哈!

如果你说要再回到原来的状态,也是可以的,按照上面的方法再走一遍流程即可,不过要注意的是,这次想要获取到的ID就不是输入git log了,这里又出来一个新的命令了

git reflog

记录的是所有的log,接下来,你就知道怎么去操作了

不过,这里也牵引出我们的撤销操作出出来了

七.撤销更新

前面已经说了这么多,这部分其实就是写命令,所有就不实际演示了

//如果你写代码写错了之后想撤销的话,也就是还原文件初始状态
、git checkout --文件名
//如果你已经add了代码到缓存区
git reset HEAD 文件名
//但是如果你已经commit了,就需要版本回退了
git reset --hard 版本号
//要是你推送到了远程仓库,比如github
.....你就很痛苦了

八.分支的创建和切换

我们都知道,默认是有一个主分支master分支,但是我们有时候如果需要测试某些功能或者怎么样的时候,需要创建一个分支,当觉得分支的代码可以了就合并到主分支,这样的好处也是保证主分支的一个干净性和安全性,好的,我们具体来看一下怎么操作的:

  • 查看分支
git branch 

  • 创建分支
git branch [分支名]
  • 切换分支
git checkout [分支名]

这样就可以了,还有另一种比较方便的方法就是

  • 创建并且切换分支
git checkout -b [分支名]

这张图,我们可以看到,我们先是查看了自己所在的分支,位于主分支,然后我创建了一个分支叫hello,接着我切换到hello这个分支,再次查看自己所在的分支,就是hello了,然后再切换回主分支,再用创建并切换的命令创建了android这个分支,然后查看分支,我们就位于android这个分支了

九.分支的更新和提交

分支的push和pull,其实和主分支的操作还是有些许区别的,就是命令

  • 分支push
git push origin 分支名

看,他可以提交,显示要我们账号密码

这里,我们已经把android这个分支推送上去了,而hello这个分支没有,所以我们输入

git brnch -a

查看所以的分支

这里,白色的是本地分支,绿色的,是你所在的分支,红色的,是远程的分支

  • 分支pull

既然push要做处理,那pull肯定要咯,和push一样

git pull origin 分支名

OK,这个是可以的

十.分支合并

这里,我们可以看到,我们所在的分支是android

我们对README.md进行修改

然后add commit

现在我们android分支已经修改了,但是主master分支病没有,我们觉得android分支这段代码可以用了,需要合并到主分支,那我们该怎么做呢?

我们这里可以看到,我们先是切换到了主分支,然后输入

git merge 分支名

去合并代码,现在,我们查看一下

好的,这样,代码就合并成功了

十一.代码冲突

这个代码冲突,在SVN中也是精彩会碰到,还是自己对版本控制这一块的不熟练,一般出现冲突Git的话是两种情况

  • 在你push推代码的时候发生代码冲突
  • 合并分支的时候发生代码冲突

比如你在分支中写的代码,主分支也有类似的,就极有可能发生冲突,我们来测试一下,我们不演示了,我讲个大概的思路,当出现冲突的时候,命令行会告诉我们哪个文件合并出错,找到这个文件的时候

vim 文件名

你可以看到有个特殊的箭头包裹着一段代码,那就是两个代码块不一样的地方,你需要自己手动修复

然后,需要重新提交,但是再commit的时候

git commit -i -m ‘更新说明‘ 文件名

这样提交后就可以直接push了

好了,小伙伴们,Git的使用是否已经学会了

我的群,通往Android的神奇之旅 :555974449,欢迎大家进来交流技术!

时间: 2024-10-26 06:39:56

Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突的相关文章

第二章-第二题(练习使用git的add/commit/push/pull/fetch/clone等基本命令)--梁绍楠

题目描述: 每人自己建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令.比较项目的新旧版本的差别. 使用步骤: (1)创建版本库 选择一个合适的地方,创建一个空目录HelloWorld.而后通过git init把这个目录变成Git可以管理的仓库(目录下会多出了一个.git目录,该目录是git跟踪管理版本库的,勿轻易修改): 编辑hello文件,内容如下: (2)将文件hello放到git仓库 首先,需要设置用户名.邮箱信息

第二章-第二题(每人自己建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令。比较项目的新旧版本的差别。)--by侯伟婷

第二题:每人自己建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令.比较项目的新旧版本的差别. 下面我将自己的练习结果和个人感受记录如下: 第一步:安装Git,设置自己的账号和邮箱,参见Git教程-廖雪峰的官方网站,网址如下参考资料1所示. 第二步:在Git中新建repository,名叫HelloWorld,并进行初始化,如图所示. 第三步:在HelloWorld版本库中新建了helloWorld.txt文件,用以练习G

第二章-第二题(练习使用git的add/commit/push/pull/fetch/clone等基本命令)-By郭青云(未完待续)

题目描述: 每人自己建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令.比较项目的新旧版本的差别. 使用步骤: 未完待续...... 参考文件:http://blog.csdn.net/u012575819/article/details/50553501

Eclipse 的 git 插件操作 "代码提交"以及"代码冲突"

面向对象:曾经使用过SVN的同学. (因为Git 它 可以说是双重的SVN (本地一个服务器,远程一个服务器)),提交代码要有两次步骤,先提交到本地服务器,再把本地服务器在提交到远程服务器. 所以连SVN的同学都没有使用过就好好使用一下SVN吧. a1.代码更新. 在SVN中操作,我们要提交已经修改过的代码前,一定会记住. "先更新,在提交" (不然你的小伙伴的代码就被你全覆盖了,然后你的小伙伴就会躲在公司墙角画圈圈了) 所以在Git里面操作.也是这样的.不过就多了一个步骤,就是 先更

在Android Studio 和 Eclipse 的 git 插件操作 "代码提交"以及"代码冲突"

面向对象:曾经使用过SVN的同学. (因为Git 它 可以说是双重的SVN (本地一个服务器,远程一个服务器)),提交代码要有两次步骤,先提交到本地服务器,再把本地服务器在提交到远程服务器. 所以连SVN的同学都没有使用过就好好使用一下SVN吧. a1.代码更新. 在SVN中操作,我们要提交已经修改过的代码前,一定会记住. "先更新,在提交" (不然你的小伙伴的代码就被你全覆盖了,然后你的小伙伴就会躲在公司墙角画圈圈了) 所以在Git里面操作.也是这样的.不过就多了一个步骤,就是 先更

09_EGIT插件的安装,Eclipse中克隆(clone),commit,push,pull操作演示

?? 1 下载EGIT,下载地址:http://www.eclipse.org/egit/download/ 最终的下载地址: http://www.eclipse.org/downloads/download.php?file=/egit/updates/org.eclipse.egit.repository-4.0.1.201506240215-r.zip&mirror_id=105 2 安装EGIT插件 3 Eclipse中使用GIT,先准备GIT相关的文件夹等. 创建一个仓库 4 Ecl

兔子--git常用的命令

git status 查看当前分支状态 git  add  需要提交的文件 git  rm 需要删除的文件 git commit  -m "注释说明" git  branch  查看当前是属于哪个分支,假如是puppis 分支 git pull --rebase 更新到与服务器同步 git  push origin puppis 提交到puppis分支的远程服务器 git checkout  aa  切换到aa分支上 git  branch -a 显示所有远程分支 git branch

Git分支管理——创建、合并、删除分支

前言: 几乎所有的版本控制都以某种形式支持分支.使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线. Git的分支模型成称为它的"必杀技特性",也正因为这一特性,使得Git从众多版本控制系统中脱颖而出.Git处理分支的方式是难以置信的轻量,创建新的分支这一操作是秒级完成的,并且在不同分支之间的切换操作也是一样便捷. Git的分支,其实本质上仅仅是指向提交对象的可变指针.Git的默认分支是master.在多次提交操作之后,其实我们已经有一个指向最后那个提交对象的mast

Git 分支管理 创建与合并分支

分支在实际中有什么用呢? 假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了. 如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险. 现在有了分支,就不用怕了. 你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作, 而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作. 创建与合并分支 在版本回退里,你已经知道,每次提交