GIT版本管理使用技巧

原创:Daway.Huang

一、建立并导入GIT库(以添加EC Tools库为例)。
1,进入要的源码目录:
   cd ec_tools_code (确保该目录下没有不可提交的文件,如tags不提交则应该删除)
2,初始化该目录:
   git init
3,编辑“.gitignore”文件,加入忽略提交的文件:
   vim .gitignore
   tags
   *.o
4,将当前目录所有文件都加入到提交列表:
   git add .
5,提交:
   git commit  (信息内容一般初始导入时如此写:initial code of ec tools, 0.1)
6,建立远程库origin(确保远程仓库目录已建立好,若未建立请联系系统管理员):
   git remote add origin ssh://git@172.16.0.30/ec_tools.git
7,将本地文件上推到远程库的master分支:
   git  push origin master

二、将远程库上的分支下载到本地(以kernel的linux-2.6.27.1-lemote为例)。
1,先将远程库clone到本地:
   git clone git://dev.lemote.com/linux-loongson.git
2,与远程库同步一下:
   git pull  (该步骤可略,若本地很旧则需要同步一下)
3,新建远程分支到本地:
   git checkout -b linux-2.6.27.1-lemote origin/linux-2.6.27.1-lemote

三、直接从远程仓库中checkout出某个分支到本地仓库
1,确保在已有的本地仓库中操作。如果没有,则创建新的空白本地仓库:
   mkdir linux-2.6.27.1-lemote
      cd linux-2.6.27.1-lemote
      git init
2,取出远程仓库的某个分支(如linux-2.6.27.1-lemote)。
  格式: git fetch <url> <分支名>
  例: git fetch git://dev.lemote.com/linux_loongson.git linux-2.6.27.1-lemote
3,把取出的远程分支检出到本地。
  格式: git checkout -fb <新的本地分支名> FETCH_HEAD
  例: git checkout -fb linux-2.6.27.1-lemote FETCH_HEAD

四、通过打补丁email发送
1,制作补丁:
   git format-patch HEAD^  (或分支名,如master,或是commit SHA(如果是多个补丁))
  将生成形如下面的补丁文件:
  0001-Updata-xxx.patch
  也可将发送的email地址加入:
   git format-patch --cc="Huang Wei <huangw@lemote.com>" HEAD^
2,配置git send-email并发送补丁:
   git config --global sendemail.smtpserver (www.lemote.com)    //配置smtp服务器
   git config --global sendemail.smtpencryption abc                   //配置smtp服务器密码
   git config --global sendemail.smtpuser huangw                      //配置smtp用户名
3,发送(建议send-email的版本在1.6以上):
   git send-email 0001-Update-xxx.patch --to wuzj@lemote.com
      Who should the emails appear to be from?[huang wei <huangw@lemote.com>] (回车)
      Emails will be sent from: huang wei <huangw@lemote.com>
      Message-ID to be used as In-Reply-To for the first email?  (回车)
      (mbox) Adding cc: ... ...
      (mbox) Adding cc: ... ...
      password: (输入上面设置的密码“abc”)  (回车)
      OK. Log says:
      ... ...
  注意:该命令也可写成
   git send-email --from="Wu Zhangjin <wuzhangjin@gmail.com>" --to="Huang Wei <huangw@lemote.com>" 0001-Update-xxx.patch
4,将上面制作的补丁打到当前分支:
  git am 0001-Update-xxx.patch

五、制作补丁文件和打补丁
1,制作patch文件,将master修改的部分加到base分支中:
   git diff base..master > diff.patch
2,打补丁:
  进入base分支,执行以下命令:
   patch -Np1 -i diff.patch    //将补丁打到base分支,让base分支与master分支完全一致。

六、其他命令用法
1, git rm ec_sci.c               //将ec_sci.c从commit的Index中删除
2, git branch -D master     //删除master分支(本地)
3, git remote update        //清除远程分支的缓冲区
4, git checkout origin/master -b master     //将远程master分支创建到本地master分支
5, git commit --amend       //修改已提交的log内容。
  若修改log前已push到远程仓库,则可以强制push到远程仓库:
   git push origin +master:master    //加上“+”表示强制再次push
  问题:
  (1)如果在push时提示要输入密码,则为密钥不在当前的~/.ssh目录下,请拷贝密钥文件id_rsa到~/.ssh目录下。
  如:
     scp  huangw@172.16.0.30:.ssh/id_rsa ~/.ssh/
  (2)查看id_rsa文件用户,若为root则需要在~/.gitconfig文件中注册你的信息:
     vi ~/.gitconfig
     [user]
    email = huangw@lemote.com
    name = daway   #名字任意
  (3)如果你用git commit时的编辑log的工具不为vi,请在~/.gitconfig文件中添加:
     [core]
    editor = vi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

daway

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值