使用git开发项目流程总结

首先要明白四个空间:远程仓库,本地仓库,本地缓存区,本地工作区;

远程仓库:该仓库是一个集中的数据仓库,正常情况下,所有参与开发的人员的代码最后都会提交到该仓库的自己的分支上,再由具有合并权限的人员来合并所有分支;

本地仓库:一般来说,本地仓库是由开发人员通过clone复制远程仓库中的某个分支的数据到本地而产生的,但git不是集中式的版本控制,而是分布式的版本控制,他们的区别就是,分布式版本控制中每一个仓库都能具有远程仓库的作用,而集中式的版本控制中远程仓库是不能被其他参与开发的人备份的;

本地缓存:在本地修改数据后(一般是指我们在编辑器中修改某个文件),git监测到该数据与本地数据仓库的数据不一致,会提示将该修改增加(add)到缓存区,缓存区中的文件可以用来与本地仓库中的文件进行比较(difftool),这个用处目前感觉主要用于当我们修改很多文件时,最后不记得自己修改了那些文件,如果没有缓存区,我们直接提交的话,很容易会导致很多疏忽。我们在编辑器中修改了文件后(本地工作区),本地缓存中不包含我们的修改的,只有当我们把本次的修改add到缓存区的时候,缓存区中才有本次的修改,这表明我们的每一次修改都必须手动add到本地缓存中才能在使用commit命令时将其添加到本地仓库。

本地工作区:也就是我们的编辑器的空间;

现在开始使用git的开发流程了:

1.初始化本地仓库,打开终端,输入以下内容:

   git init

 该命令会在本地的当前目录创建一个空的本地仓库,也就是第二步中从远程仓库克隆的项目被放置的地方;

1.克隆远程仓库项目到本地:

  git clone +远程仓库的地址(例子如下)

 git clone git://github.com/schacon/ticgit.git

执行完该命令后,本地仓库中应具有远程仓库中默认的master分支中的数据;

2.进入该项目的目录,查看分支状态;

  cd 目录名

  git status(查看当前状态,这个状态包括以下数据:当前在那个分支上,当前缓存区数据状态(change to commit),修改了数据但是没有add到缓存区的文件状态(change but not update),当前仓库中还没被追踪的文件(Untracked file))

可以在终端中看到目前在哪一个分支上(默认是master),一般我们不应该在master分支上开发,应该在自己的分支上开发,所以需要创建自己的分支,两种方式:

2.1 git checkout -b 分支名,创建当前分支的备份分支,并切换到该分支;

2.2 git branch 分支名 创建分支

      git checkout 分支名 切换分支

3.使用studio打开该项目,打开后可能会发现该项目不能运行或者编译不通过,这需要你找到其原因,目前我遇到的都是一些gradle版本不符合或者该项目中的引用资源路径不对之类的,稍作修改即可;

4.在studio中修改某个文件,然后在终端中执行git status,这个时候你会发现在对应的change to update状态下表明该文件被修改了(modified),但是缓存中还没有该文件,目前该文件的修改只限于工作空间(编辑器),此时如果要提交该修改,需要先将该文件add到缓存区,执行

git add 文件名

此时可以再执行git status 来查看当前本地的状态,你会发现在change to commit状态下存在该文件了,此时你可以查看缓存区的该文件和本地仓库中该文件的差异:

git difftool --cached 文件名

上述命令表示,对比缓存区和本地仓库中该文件的差异,注意的是,不是对比工作空间中文件;该命令后面不加文件名时,表示对比所有缓存区的文件;此时如果在对比工具中修改了文件内容,仅仅是修改了工作空间的文件,如果要将该修改提交,则还要将该文件add到缓存区;

确定修改好了之后,就可以提交了:

git commit 

该命令会将缓存区中的文件修改提交到本地仓库,执行该命令后会让我们输入本次提交的相关说明;

这样我们的修改就被提交到本地仓库中,可以执行git log命令来查看我们的提交记录,其中commit号是我们回退时候需要的参数;

如果此时我们发现自己忘记提交一些文件,又不想再创建一个commit,可以撤销上一次的提交,

git commit -amend

然后再add遗漏的文件到缓存区,再提交;

确认所有修改都被提交之后,便可以将本地仓库的文件提交到远程仓库中,即:

git push origin 仓库名字(可以通过git branch -a来查看所有分支)

一些命令总结:

checkout:1.切换分支==》git checkout 分支名

                 2.回撤修改;

                    git checkout filename 撤销filename文件在工作空间中的修改,

                    git checkout .       注意到 checkout 后面有个”.”,就是代表所有文件的意思把所有文件都撤回刚才在工作区上的改动。

                    git checkout cimmit号 filename 撤销目标文件的修改,使文件暂存区和工作区都回到某一次提交时的状态;

reset :撤销操作,但是不同的参数会导致不同的效果,常用如下:

                    git reset  HEAD filename 回退某个文件到前一次的提交的状态,仅仅是暂存区的改变,工作空间不会修改,其中HEAD可以理解为上一次提交的commit号,filename不加的时候表示回退所有文件;

                    git reset –soft     意味着工作区不会收到影响,暂存区回到了那个节点的commit时的状态。也就是说你在提交后所做的修改不会被没收;

                   git reset –hard    这个用法和刚才的类似,就是多了个–hard,意味着你工作区的代码也会回档,和暂存区保持一致,都回到了那个节点的commit时的状态。

git学习资料: 

git基础知识

回退操作相关

checkout命令

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容

  • git作为时下最流行的代码管理工具,Git权威指南总结了十条喜欢Git的理由: 异地协同工作; 现场版本控制; 重...
    古斟布衣阅读 1,818评论 0 12
  • 2017年计划是看五十本书,今天是第一本,书名是《学会提问》。今天是第一次分享,书中触动我最深的是不要抵制和驳倒那...
    甘于寂寞阅读 136评论 0 2
  • 川溶晨霭,慕桂缘枫攀远黛。日绽云开,鹏举烟岚巡北崖。 风凌绝顶,尽扫心尘闲煮茗。友顾寒庐,且枕云天共玉壶。 (词林...
    夜雨偶微凉阅读 342评论 22 23