git patch && git branch && git add

git使用增加:

1)回退 到某一版

git reset --hard xvxvxvxvxvxvxvxvxvxvxcvx

2)更新到最新

git pull

3)

 

 

 

 

git branch Fix    //建立一个新分支

git checkout Fix    //Switched to branch 'Fix'

 

git提供了两种简单的patch方案。一是用git diff生成的标准patch,二是git format-patch生成的Git专用Patch。

 

首先这里我们需要做的是 git专用patch。

zyk:

Step:

1. $ git status
# On branch ipp33
# Your branch is ahead of 'origin/xxx' by 1 commit.
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   IPP3ISelDAGToDAG.cpp
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       0001-Modify-for-bug-15645-the-error-of-c-register-in-tstn.patch
#       0001-abcd.patch
#       0002-Modify-for-13042.-Improve-the-performance.-Combine-I.patch
#       0003-Fix-Optimizing-ASM-bugs.patch
#       IPP3ISelDAGToDAG.cpp_b
#       aa
#       bb
#       cc
#       ff.sh
#       gg
#       his
#       list
#       log
#       sh.sh
no changes added to commit (use "git add" and/or "git commit -a")

 

2. git diff -check

 

3. git commit -a -m "xxxxx"

4. git log

5. git format-patch -1


 

插播 git branch:

转自:http://blog.chinaunix.net/uid-20780196-id-3240975.html

1,branch的建立及使用
git clone user@192.168.0.136:/media/projiect/omap4/nexttab/kernel kernel/android3.0/  //下载内核源码
git checkout -b  xx       //建立分支并切换到分支xx
git branch                   //查看当前分支的状态
git status                    //查看分支及当前修改过的文件
git add .                    //增加所有文件(如果添加某个文件,用git add file)   (
git commit -a -m "branch xx test "   //上传到本地git仓库,注释信息为branch xx test
                                        
git push user@192.168.0.136:/media/projiect/omap4/nexttab/kernel xx //推送xxx分支到服务器上
git clone user@192.168.0.136:/media/projiect/omap4/nexttab/kernel -b xx kernel/android3.0//下载xx分支

2,branch的管理
git branch                //查看当前分支的状态

git checkout master  //切换到主分支
git merge xx             //合并分支xx到主分支

git branch -d xx        //删除分支,如果还未合并到master,则会出现不能删除提示,用-D可以强制删除

git branch -v            //查看分支的最后修改
分支前带*的为还为合并分支到master分支的,无*的为已经合并到master中,可以将无*的分支删除掉。

 

 

二、git diff生成的标准patch
2.1、制作标准补丁
我们可以首先用 git diff 制作一个 patch
本文示例的工作目录里最初有一个 文件a ,内容是“This is the file a.”,放置在master分支中。为了修改代码,我们一般的做法是建立一个新分支
sweetdum@sweetdum-ASUS:~/GitEx$  git   branch  Fix //建立一个新分支
sweetdum@sweetdum-ASUS:~/GitEx$  git   checkout  Fix    // Switched to branch 'Fix'
接下来我们在a文件里面追加一行,然后执行 git diff
sweetdum@sweetdum-ASUS:~/GitEx$  echo 'Fix!!!'>> a
sweetdum@sweetdum-ASUS:~/GitEx$  git diff
diff --git a/a b/a
index 4add65f..0d295ac 100644
--- a/a
+++ b/a
@@ -1 +1,2 @@
This is the file a.
+Fix!!!
我们看到了Git diff的输出,这是一个非常典型的Patch式diff。这样我们可以直接把这个输出变为一个Patch:
sweetdum@sweetdum-ASUS:~/GitEx$  git   commit   -a   -m  " Fix "
[Fix b88c46b] Fix
1 files changed, 1 insertions(+), 0 deletions(-)
sweetdum@sweetdum-ASUS:~/GitEx$  git   diff   master  >  patch
sweetdum@sweetdum-ASUS:~/GitEx$  git   checkout   master
Switched to branch 'master'
2.2、应用标准补丁
我们现在有一个patch文件,并且签出了master,接下来我们可以使用git apply来应用这个patch。当然了,实际应用中,我们不会这样在一个分支建patch,到另一个分支去应用,因为只有merge一下就好了。我们现 在权当没有这个Fix分支。一般情况下,为了保护master,我们会建立一个名叫 PATCH 的分支来专门处理新提交来的patch的
sweetdum@sweetdum-ASUS:~/GitEx$  git   branch   PATCH
sweetdum@sweetdum-ASUS:~/GitEx$  git   checkout   PATCH
Switched to branch 'PATCH'
sweetdum@sweetdum-ASUS:~/GitEx$  git   apply   patch
sweetdum@sweetdum-ASUS:~/GitEx$  git   commit   -a -m   "Patch Apply"
[PATCH 9740af8] Patch Apply
1 files changed, 1 insertions(+), 0 deletions(-)
看,现在我们在PATCH分支中应用了这个补丁,我们可以把PATCH分支和Fix比对一下,结果肯定是什么也没有,说明PATCH分支和Fix分支完全一样。patch应用成功。即使有多个文件git diff 也能生成一个patch。
三、git format-patch生成的git专用补丁
3.1、制作git专用补丁
我们同样用上面那个例子的工作目录,这次,我们在Fix分支中的a添加了新行之后,用 git format-patch生成一个patch。
sweetdum@sweetdum-ASUS:~/GitEx$  git checkout Fix
Switched to branch 'Fix'
sweetdum@sweetdum-ASUS:~/GitEx$  echo 'Fix!!!'>>a
sweetdum@sweetdum-ASUS:~/GitEx$  git   commit -a  -m  "Fix1"
[Fix 6991743] Fix1
1 files changed, 1 insertions(+), 0 deletions(-)
sweetdum@sweetdum-ASUS:~/GitEx$  git   format-patch   -M   master
0001-Fix1.patch
git  format-patch 的-M选项表示这个patch所在的当前分支要和那个分支比对。现在它生成了一个patch文件,我们看看那是什么:
sweetdum@sweetdum-ASUS:~/GitEx$  cat  0001-Fix1.patch
From 6991743354857c9a6909a253e859e886165b0d90 Mon Sep 17 00:00:00 2001
From: Sweetdumplings <linmx0130@163.com>
Date: Mon, 29 Aug 2011 14:06:12 +0800
Subject: [PATCH] Fix1
---
a |    1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/a b/a
index 4add65f..0d295ac 100644
--- a/a
+++ b/a
@@ -1 +1,2 @@
This is the file a.
+Fix!!!
--
1.7.4.1
看,这次多了好多东西,不仅有diff的信息,还有提交者,时间等等,仔细一看你会发现,这是个E-mail的文件,你可以直接发送它!
注意 如果master与Fix分支中间有多次提交,它会针对每次提交生成一个 patch
3.2、应用git专用补丁
git format-patch 生成的补丁,必须使 git am命令 来应用。
sweetdum@sweetdum-ASUS:~/GitEx$  git   checkout  master
Switched to branch 'master'
sweetdum@sweetdum-ASUS:~/GitEx$  git   branch   PATCH
sweetdum@sweetdum-ASUS:~/GitEx$  git  checkout   PATCH
sweetdum@sweetdum-ASUS:~/GitEx$  git   am   0001-Fix1.patch
Applying: Fix1
sweetdum@sweetdum-ASUS:~/GitEx$  git   commit -a -m  " PATCH apply"
在提交了补丁之后,我们可以再看看目前文件a的情况:
sweetdum@sweetdum-ASUS:~/GitEx$  cat   a
This is the file a.
Fix!!!
果然,多了一个Fix!!!

 

 git add:

 1)git status 查看有变化的文件(一般有变化的文件会以红色显示出来)
2)git add + 想要提交的文件名
3)git commit -m "注释的一些信息"
如果在这一步出错的话:git reset --hard HEAD 回滚到add之前的状态
4)git push 完成这一步,你的文件就已近提交到了分支上,别人通过git pull 命令就可以把你提交的文件拉到他本地

 

 

 

 

 

 

 

 

 

转自: http://blog.csdn.net/hudashi/article/details/7669468
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值