OS-->Git操作演练(项目实用命令)

竟然是命令操作,当然少不了要使用Shell.

这里推荐使用babun用来执行shell命令,下载地址:http://babun.github.io/

1:拉取项目

git clone https://github.com/angcyo/PaintDemo.git 

2:查看状态

git status  //可以查看所有文件的修改状态,在进行commit操作,push操作,pull操作之前,请确保所有文件的状态都是干净的,否则会出现意想不到的错误

OS-->Git操作演练(项目实用命令)_第1张图片

git add build.gradle   //追踪build.gradle文件
git add .              //追踪所有文件,注意垃圾文件要checkout哦~
git checkout build.gradle //放弃追踪build.gradle文件
git checkout .            //放弃追踪所有文件

3:提交修改

git commit -m "基本修改"  //提交本次修改

git status //在执行操作之前,都请先查询状态,这个习惯很好

提交之后,可以使用:

git log //查看提交日记


OS-->Git操作演练(项目实用命令)_第2张图片

但是,本次提交,只是提交到了本地仓库,远程仓库并没有修改.

所以接下来,我们需要把修改提交到远程仓库.

4:推送到远程仓库

git push origin master //推送到远程仓库,我这里用的Github,所以会提示输入用户和密码.(输入不可见哦)

OS-->Git操作演练(项目实用命令)_第3张图片


很显然,推送已经生效了.

上述,都是基本的操作,但是实际过程当中往往没有那么顺利.

接下来,针对问题,描述使用方法.

1:取消上一次的commit
当执行

git commit -m “提交信息”

之后,发现不对,有问题,需要回退本次提交.

我们可以通过git log命令,查看commit id信息,然后通过以下命令,就可以轻松愉快的回退到先前的状态了

git reset --soft 47e39134a0eb6b1698cccf950621c6c631ea5879


这种方法,不仅可以回退,而且可以恢复状态.

如果你仅仅想回退,不想要状态,可以这样:

git reset --hard 47e39134a0eb6b1698cccf950621c6c631ea5879

2:合并其他分支的代码
当其他同事,在同一分支修改代码之后,此时要更新自己的分支.

git rebase 31a55ce

OS-->Git操作演练(项目实用命令)_第4张图片

我们可以先通过git fetch命令,查看最新的代码版本,最重要的就是要拿到最新代码的commit id.
再通过git rebase ‘commit id’,就可以用最新的代码合并本地的代码.

当然,更简单粗暴的方法是:

git pull  //这种方法,很粗暴,通常会遇到很多问题,推荐使用git rebase命令

3:创建分支,备份代码
很多时候,我们并不需要立即提交代码,或者各种原因.总之目的就是备份代码;

git checkout -b "angcyo" origin/d8 //用远程的d8分支,创建一个新的分支angcyo,相当于备份了远程的d8分支,为angcyo分支

git checkout -b "angcyo" //用当前分支,创建一个新的分支angcyo

分支多了之后,肯定需要切换分支的:

git checkout "分支名" //切换分支

4:合并多个提交
如果我已经执行了一次git commit 操作, 此时我又新增了文件,或者修改了文件.
这个时候,我怎么把这次修改,合并到上一次的commit中呢?

git add . //需要先追踪修改过的文件
git commit --amend //然后执行 此命令,就行了

这样的话,本次修改就会和上一次的修改,合并了.

5:绝招都是留在最后的

什么是commit id

git log //使用此命令,可以查看所有的commit信息,信息里面就包含了commit id,如下图.

OS-->Git操作演练(项目实用命令)_第5张图片

Git的强大,就是把你每次commit提交到的操作,都记录在这个id里面,
所以你上一次的提交,和你上上一次的提交,是没有任何关系的.
比如:
commit id :d5264131 记录了新增2个文件,a.java和b.java
commit id :d8911234 记录了修改2个文件,c.java和d.java

那么你可以在任何分支,引用这个commit id,就会执行相对应的操作.

git cherry-pick [commit-id] //本篇的主角.
git cherry-pick d5264131 //会在当前分支: 新增2个文件,a.java和b.java
git cherry-pick d8911234 //会在当前分支: 修改2个文件,c.java和d.java

这个神奇的命令,告诉你,你只要知道commit id,就可以将你的修改,用在任何地方.

妈妈再也不用担心,修改了文件却不知道怎么应用到其他分支了.

文章中的很多命令,并没有做过多的详细解释.

读者可以百度一下命令,会比我复制粘贴过来更有效.

至此: 文章就结束了,如有疑问: QQ群:274306954 欢迎您的加入.

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