my project 中git使用过程(基本操作流程)
1.g it clone git@name:server/BM/APPS.git
则BM_APPS.git项目被下载到当前目录下了,这时git@name:server/BM/APPS.git就是自己的origin库。
2.为自己的仓库定义别名
为方便以后操作,可给自己的仓库定义一个别名:
#git remote add fork git@name:dev/zhangsan/BM/APPS.git
3.checkout 切换到当前的开发分支,作为工作分支
git checkout origin/dev_sp4 -b dev_sp4 (也可以是
等价与两条命令:git branch dev_sp4//先创建分支 再 git checkout dev_sp4)
4.将当前分支push到git Server上的fork库中
#git push fork dev_sp4
这时BM_APPS.git项目即为开发者zhangsan自己的仓库,它相当于是从git@name:server/BM/APPS.git中fork出来的。
5.在本地dev_sp4分支上开发,开发前要先同步代码
git pull origin dev_sp4
开发者在本地进行开发(新建/修改文件)并提交(commit)。
git add .
git commit -a -m "<san_zhang@audiencetouch.com><BMS-749><dev><2011/05/03>fix BMS-749"
6.一般开发流程如下:
开发人员有新的提交后,需要将提交push到自己的fork库中,操作如下:
A.查看origin上dev_sp4分支的修改记录:
#git fetch origin dev_sp4
B.比较看和本地dev_sp4分支有没有改变:
#git diff origin/dev_sp4
C.如果有改变就要建立临时分支合并修改:
#git branch dev_sp4_tmp
#git checkout dev_sp4_tmp
#git rebase origin/dev_sp4 这是远端的内容合并到当前分支(当前为tmp分支)
D.如果有冲突就解决冲突再提交:
一般过程为:
git rebase origin/dev_sp5 //同步最新代码出现冲突git status //查看冲突文件vi conflict_files //修正冲突文件git add //重新添加文件到索引中git commit //重新提交代码git rebase --skip //跳过之前冲突的提交git rebase --continue //继续rebase,直到完成E.将merge这部分修改合并到本地dev_sp4分支:
#git checkout dev_sp4
#git merge dev_sp4_tmp
可以看出总体是,先下载总库(fetch origin)到本地dev分支(rebase),在这个分支上进行开发后,有了提交(add,commit后)。先不能提交(总库可能有变化,别人提交了),此时再fetch 总库,并合到一个新建tmp分支,处理冲突后,将最新总库内容,合并到真分支(checkout
真分支,然后rebase或者merge tmp都行),最后删除tmp
F.如果没有冲突就删除临时分支:
#git branch --d dev_sp4_tmp
G.推送代码到服务器上的fork库:
#git push fork dev_sp4
最后通过邮件或其他方式告知管理员来合并代码。
aso项目git库:
查看 cat .git/config后
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = git@repo.allfuck.com:aso
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[branch "waterforest"]
remote = origin
merge = refs/heads/waterforest
url是个内部代理名。我的机器是内部网络机,直接用就可以访问到代理名指定的服务器。
想换成实际ip地址,就要到服务器,去查对应的转换名。
my project 中git使用过程(基本操作流程)的更多相关文章
- git rebase 过程中遇到冲突该怎么解决?
在执行git rebase 过程中经常遇到问题,此时有点慌,一般如何解决呢? 1.先将本地的冲突手动解决 2.执行下面命令 git add . git rebase --contine //继续re ...
- SVN迁移到Git的过程(+ 一些技巧)
SVN迁移到Git的过程(+ 一些技巧) 李顺利 Key Words SVN,Git,Clone,Conversion,Tips,VCS,Pro Git 关于在VCS中SVN和Git之间的迁移(Clo ...
- SVN迁移到Git的过程(+ 一些技巧
关于在VCS中SVN和Git之间的迁移(Clone)这个部分网上已经有大批的文章介绍,而且都非常不错,能够满足我们的常见的需求,这里介绍的是我自己整理的一些技巧和使用中出现的一些问题和疑问.阅读本篇文 ...
- Xcode 中 Git 的配置与使用
Xcode 中 Git 的配置与使用主要围绕下面几个问题展开阐述: 问题1,如何在Xcode中创建本地代码库,并添加和提交代码到本地代码库? 问题2,如何在Xcode中提交推送给远程服务器代码库? 问 ...
- git 使用过程(一、准备工作)
没有多余的废话,只是纯粹的捞干的记录下一自己使用Git的过程.(正在学习中,也是刚接触,记录过程可能有点乱.等熟悉之后在重新整理一下) 一.先下载git客户端 网址:http://msysgit.gi ...
- Android开发过程中git、repo、adb、grep等指令的使用
chown 是一条在Unix系统中用于设置文件所有者和文件关联组的命令. 需要超级用户的权限才能执行此命令.只有超级用户和属于组的文件所有者才能变更文件关联组.非特权用户(非超级用户)如需要设置关联组 ...
- git 团队开发常用操作流程(适用于 gogs、gitlab、github)
git 团队开发常用操作流程(适用于 gogs.gitlab.github) NO1 项目构建者 (1)在远程仓库创建仓库 (2)将伙伴添加到仓库合作者中(无先后要求) (2)cd 到项目将要存放项目 ...
- Eclipse 中Git的使用及如何解决冲突
1. 如何导入已有Git项目 1.1 File——>import… 出现以下界面 1.2 找到Git,然后双击‘Project from Git.或者点击next 1.3 双击Clone URI ...
- idea中git pull push需要反复输入密码
在使用idea开发的过程中,在终端terminal中git pull和git push时遇到一个问题,一个是 每次提交都需要输入用户名和密码,,从网上找了下解决方案,记录一下. 解决: 打开git终端 ...
随机推荐
- Redis之(一)初识Redis
1.Redis概述 我们知道,内存是电脑主板上的存储部件,用于存储当前正在使用的数据和程序,CPU可以与内存直接沟通,所以访问速速非常高:而外存数据必须加载到内存以后程序才能使用.如果把CPU当做一个 ...
- Dynamics CRM 打开数据加密报错及修改用户邮件保存报错的解决方法
在项目里会碰到在修改用户的电子邮件时报错的问题 然后跑到数据管理里打开数据加密又是报错 解决上述问题只需要做下数据库的更改即可,把标志位置1即可,记得要重启下IIS才能生效 SELECT [Colum ...
- 【mybatis深度历险系列】深入浅出mybatis中原始dao的开发和mapper代理开发
使用Mybatis开发Dao,通常有两个方法,即原始Dao开发方法和Mapper接口开发方法.mybatis在进行dao开发的时候,涉及到三姐妹,分别是SqlSessionFactoryBuilder ...
- 让sublime总是在新选项卡打开新文件
sublime的一个默认设置让人很不爽,比如现在选项卡里面已经打开了一个文件A,当你从左边side bar里面点击一个新文件B时,如果你不是快速的双击,且A没有处于编辑未保存状态,那么B就会覆盖A的选 ...
- Spark技术内幕:Shuffle的性能调优
通过上面的架构和源码实现的分析,不难得出Shuffle是Spark Core比较复杂的模块的结论.它也是非常影响性能的操作之一.因此,在这里整理了会影响Shuffle性能的各项配置.尽管大部分的配置项 ...
- 2.cocos2dx 3.2中语法的不同之处,lambada表达式的使用和function和bind函数的使用
1 打开建好的T32 Cocos2dx-3.2的一个项目 2 设置Cocos显示窗口的位置是在AppDelegate.cpp中: 3 设置自适应窗口大小的代码是在上面的 ...
- SQLite Where 子句(http://www.w3cschool.cc/sqlite/sqlite-where-clause.html)
SQLite Where 子句 SQLite的 WHERE 子句用于指定从一个表或多个表中获取数据的条件. 如果满足给定的条件,即为真(true)时,则从表中返回特定的值.您可以使用 WHERE 子句 ...
- Java基本语法-----java运算符
这块的东西比较多 我写了太慢了 于是在word里写好贴出来供大家一起学习 运算符 -赋值运算符 -比较运算符 -逻辑运算符 -位运算符 -移位操作符 -三元运算符 [正在看本人博客的这位童鞋,我看你气 ...
- Spark分布式计算和RDD模型研究
1背景介绍 现今分布式计算框架像MapReduce和Dryad都提供了高层次的原语,使用户不用操心任务分发和错误容忍,非常容易地编写出并行计算程序.然而这些框架都缺乏对分布式内存的抽象和支持,使其在某 ...
- struts1.x mvc简单例程
因为项目需要,需要使用struts1.x .因此学习下struts框架. 例程从struts 实现MVC框架入手,完成一次request请求. 一.前台 两个jsp文件 index.jsp: 只有一个 ...