Git use summary (2)

1、Writing int the front 

     使用git已经有很长一段时间了,从最初的不熟悉,误解,到现在的熟悉,惊叹于git的优雅与神奇,这大概就是git带给我们每一个开发者的魅力吧!恰逢最近看了proGit book,结合着自己用git开发经验,做了些总结,算是对一直以来的学习的一种回馈与犒赏。

2、git本地创建project的perfect process

makdir  ~/hello-world    //创建一个项目hello-world
cd   ~/hello-world       // 进入 这个项目 目录
git init             //初始化,  
touch README
git add README        //更新README文件      
git status        // 看下,是不是 修改的 都已暂存起来了
git commit -m 'first commit'    //提交更新,并注释信息“first commit”
git   remote add origin git@github.com:dkf/hello-world.git     //连接远程github项目
git  push -u origin master     //将本地项目更新到github项目上去

3、为项目贡献代码

      要为一个自己没有推送权限的项目贡献代码,到那个感兴趣的项目主页上,点击页面上方的 "fork" 按钮,GitHub 就会为你复制一份该项目的副本到你的仓库中,这样你就可以向自己的这个副本推送数据了。给项目维护者发邮件请求拉取自己的更新,项目维护者只需将这些副本仓库加为远程仓库,在自己本仓库更新测试,然后合并后的更新推送到主仓库,然后提取更新合并即可。


3.1、为公开的小型项目贡献代码

克隆原始仓库,创建特性分支工作:
                Git clone (url)    #克隆原始仓库
                Cd project       #进入在本地的仓库目录下
                           Git checkout –b featureA  #创建新分支featureA,并切换到此分支下
                Git commit      #提交
                完成特性分支开发后,先到原始项目中fork创建自己可写的公开仓库,将此仓库添加为本地的第二个远端仓库,称为myfork,
                Git remote add myfork (url)    #远程连接myfork仓库
                Git push myfork featureA      #推送特性分支的更新到myfork库
                Git request-pull origin/master myfork  # request-pull命令接受两个参数,第一个是本地特性分支开始前的原始分支,第二个是请求对方来抓取的 Git 仓库 URL,                   输出内容直接发邮件给管理者。

进行第二项特性的开发:

Git checkout –b featureB origin/maser  #创建新分支featureB,并切换到此分支,分支内容和origin/master分支内容一样。

Git commit   #提交

Git push myfork featureB   #提交新特性到远端myfork库

(email maintainer)  #邮件管理者 git request-pull

Git fetch origin      #从管理员的更新中同步本地代码的更新

3.2、为大型项目贡献代码

工作流程:为每个补丁创建独立的特性分支,提交补丁,不需自己创建可写的公开仓库,也不用将自己更新推送到服务器,只需将每次提交内容以电子邮件方式发送到邮件列表即可。

git checkout –b dkf    #创建新分支dkf,并切换到dkf分支

git commit           #提交 

git  commit        #提交

git format-patch –M origin/master  #format-patch 命令依次创建补丁文件,并输出文件名。上面的 -M 选项允许 Git 检查是否有对文件重命名的提交(功能同git commit )

4、Others

4.1、分支

分支开发流程:

用master保留完全稳定代码的分支,新建develop或next分支,用来作为稳定性测试,或者新功能的开发,当稳定了合并到maser分支上,再删除原来的分支。

4.2、添加远程仓库dkf

   列出所有的远程仓库: git remote –v

(如果有masterab两个分支)

添加一个仓库名叫做dkf(在远程),

git remote add dkf  git://github.com/paulboone/ab.git

将远程的分支合并到自己创建的新的分支下(也即从远程仓库中抓取数据到本地):

git fetch dkf fetch命令将远端的数据拉到本地仓库,并不自动合并到当前工作分支)

即可创建新的分支 dkf/master,dkf/ab两个新的分支。

如果是克隆了一个仓库,此命令会自动将远程仓库命名为origin (origin指的是remote-name)下,将远程分支命名为origin/master。所以,git fetch origin 会抓取从你上次克隆以来别人上传到此远程仓库中的所有更新(或是上次 fetch 以来别人提交的更新)到本地。

git clone:自动创建了本地的 master 分支用于跟踪远程仓库中的 master 分支(假设远程仓库确实有 master 分支)。

git pull,目的都是要从原始克隆的远端仓库中抓取数据后,合并到工作目录中的当前分支。

移除对应的远端仓库:git remote rm [remote-name]

4.3、忽略文件 .gitignore (正则)

忽略某些文件:(如编译产生的临时文件,自动生成的文件,日志文件等等,忽略规则符合正则)
$ cat .gitignore

*.[oa] #表示忽略掉所有以.o,.a结尾的文件。

文件 .gitignore 的格式规范如下:

所有空行或者以注释符号 # 开头的行都会被 Git 忽略。

匹配模式最后跟反斜杠(/)说明要忽略的是目录。

要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值