git是相当与svn,cvs等的版本控制工具,repo封装了对git的操作,使git命令更简单化,

git学习网站这是之前自己看的,但实际工作操作中还是遇到了很多困难,总是遇到冲突,无法提交等问题,现在对Git的使用还是不很熟,但现在对使用也基本了解了,这样简单介绍一下。

在使用git时,用了repo,Windows下开发,使用的是Cygwin工具,这个比git的bash更好使用。使用git一定要明白,add,commit操作都不会影像远程代码仓库,只有push了才会将代码推送到远程仓库,比svn多了一步;下面以本人的操作为例:

1. mkdir gitlearn

2.cd gitlearn

3.repo init -u ssh://xxx -m xxx.xml 拉取远程代码

这个其实就相当于git的这两部操作:

git init

git clone git@github.com:wufengxyz/hellogit.git 这个是我在github上的一个仓库,这个网站也提供学习git的指南

4.repo start xxx <project..> 创建分支,在project工程上,可以是多个工程,这些工程是自己将要修改的,在Git使用中一定要开分支,不然冲突了就无法解决,

这个相当与git branch XXX(分支名 ) git checkout XXX,创建分支,切换到这个分支(repo可以操作多个工程、模块,而git是单工程的)

5.进入一个开了分支的工程,git branch -a,查看是否在分支上

6.git status,一定要多用次命令,查看修改等状态

7.开始在分支上修改,添加操作等等操作

8.修改过了代码,接下来使用

git add .

git commit -m "bug修复"

9.接下来可以同步远程代码了

repo sync xxx(工程名)

10.现在远程代码已经被down下来了,相信大家都只要会有冲突出现可能

有冲突修改,修改后使用git rebase --continue这样就相当于把这些修改合并到了上次冲突的提交中了

11.repo upload    这步操作是将代码推送到远程代码审核仓库,我们的leader会review我们的代码,通过了这次开发任务完成,不通过继续修改

12.review不通过要执行以下操作,这里要注意,我们的代码已经提交到远程仓库了,这是跟git rebase操作的一个区别

修改不通过的代码......修改完成后,git add .,git commit -m "xxx"完成一次commit了,接下来使用

git rebase -i HEAD~2

弹出一个界面

pick 0b92779 Test commit two
pick 9d80074 rebase test
合并两次pick,将第二个pick改为s,如下
pick 0b92779 Test commit two
s 9d80074 rebase test
esc :wq保存变更
弹出一个界面,删除后面一个Change-Id(dd操作,删除整行)
esc:wq保存变更
然后repo upload上传修改后的代码就完成了所有提交过程了,完全通过后就进行一次repo sync同步一下远程仓库代码,记住要经常用git status,或者repo status命令,每次做修改前一定要有第4步操作。
接下来介绍如果git完全不能提交使用了情况下的解决办法,经常因为没开分支造成;
把自己修改后的代码先备份出来,接下来repo sync把远程代码库中最新的代码同步下来,然后用备份的代码覆盖这些最新代码,如此操作后使用git status就会发现自己修改了的代码,然后在IDE工程中看与远程最新版本代码有什么不同,把远程代码中有,而自己当前代码中没有的加上,然后进行正常的提交过程就OK了,为什么这样大家想想就明白了相当于在最新版本代码上做了修改。
这些只是Git中最基本的操作流程,希望对刚刚使用git的同学有所帮助

转载于:https://www.cnblogs.com/wufengxyz/archive/2012/07/29/2613726.html

git repo使用心得相关推荐

  1. 如何清洗 Git Repo 代码仓库

    相信不少团队的代码仓库 Git Repo 变得越来越大.除了代码的提交外,时常有人会把二进制文件比如 Jar 包或者不小心把不该提交到代码库的文件提交到代码库中,比如用户名密码之类的保密信息.如何清洗 ...

  2. 从git repo分支安装pip

    本文翻译自:pip install from git repo branch Trying to pip install a repo's specific branch. 试图pip安装回购协议的特 ...

  3. Git/Repo/Gerrit区别

    一. Git/Repo/Gerrit的区别: 1. Git:Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理. 2. Repo: Repo是谷歌用Python脚本 ...

  4. tar命令打包压缩时排除.svn .git .repo等特定文件/文件夹报错/未生效

    tar命令打包压缩时排除.svn .git .repo等特定文件/文件夹报错/未生效 当使用tar命令打包压缩的同时期望排除某类文件或文件夹时,可以使用--exclude参数. 在ubuntu20.0 ...

  5. 一键更新目录下所有git repo的脚本

    一键更新目录下所有git repo的脚本 当一个大型软件包含几十个git库的时候,要是每次都手动更新会很麻烦,最近python写的比较多,顺手写了一个一件更新脚本. 使用了一个叫gitpython的库 ...

  6. Git/Git-flow使用心得

    2019独角兽企业重金招聘Python工程师标准>>> 1 基础使用 git是很好用的分布式版本管理系统 github是在线的,广泛使用online的git.free用户,所有的代码 ...

  7. git+repo 代码提交

    首次提交: 1 创建本地仓库:repo start 姓名 –all 2 更新代码:repo sync -j8 3 查看代码差异:git diff/git status 4 提交代码:git add g ...

  8. git repo 入门 简介

    文章目录 版本控制介绍 一.原始版本控制 二.本地版本控制 三.集中版本控制 四.分布式版本控制 GIT 一.获得GIT仓库 二.GIT中版本的保存 三.GIT文件操作 此为注释 – 将被 Git 忽 ...

  9. git repo使用

    repo的基本命令 http://www.cnblogs.com/l78zzz/articles/2435346.html a better git log https://coderwall.com ...

最新文章

  1. Python语言学习:创建/删除文件/文件夹、获取当前文件/文件夹路径(系统环境路径/目录)、获取当前文件夹下的所有子文件路径等代码(os系列用法)实现之详细攻略
  2. 软件概要设计和详细设计的区别
  3. HelloMyBLOG!!!
  4. oracle optimizer_features_enable,Oracle Optimizer:迁移到使用基于成本的优化器—–系列2.1-数据库专栏,ORACLE...
  5. 如何利用ide进行跟踪调试_使用调试器进行事后跟踪
  6. KNN算法网格搜索最优参数
  7. 分布式压测系列之Jmeter4.0
  8. 西瓜书读书笔记5-决策树的分裂原则
  9. 机器学习导论第二章--学习心得1
  10. C# ManualResetEvent 与 AutoResetEvent 区别
  11. walking机器人仿真教程-激光导航-TEB算法导航
  12. 拉盖尔多项式的正交性
  13. 实习僧-产品体验报告
  14. 原创2D/3D游戏引擎源代码开源
  15. 问题 D: 零起点学算法89——程序设计竞赛
  16. 迅搜(xunsearch)的安装使用以及操作类分享
  17. 华为[ENSP]—— 实验一、二层交换原理
  18. 法国iut计算机转专业,法国艺术留学能不能够申请转专业.docx
  19. 单碟500GB 希捷7200.12 750GB硬盘上市
  20. android获取存储设备根目录,Android ndk获取手机内部存储卡的根目录方法

热门文章

  1. 【开源】本周不容错过开源论文,含分割、检索、神经渲染、deepfake 检测、超分、视频相关等...
  2. 企业级OpenCV、图像识别资料免费下载,仅此1天!
  3. 百度大脑公开课!快速定制高精度计算机视觉模型
  4. 借鸡生蛋,无需数据的知识蒸馏
  5. 日本东北大学改进单阶段人脸检测—兼具速度与精度优势
  6. 开源 | 近期遥感航空影像的检索、检测、跟踪、计数、分类相关工作
  7. 使用PyTorch来进展不平衡数据集的图像分类
  8. jni调用java类_JNI之C++调用Java类 —— java.lang.String
  9. MYSQL 数据库怎样快速的复制表以及表中的数据
  10. POI EXCEL读取 性能问题