Studio配置Git及Git文件状态表达,Git使用gitignore创

2019-08-03 01:50 来源:未知

在进行协作开发代码管理的过程中,常常会遇到某些临时文件、配置文件、或者生成文件等,这些文件由于不同的开发端会不一样,如果使用git add . 将所有文件纳入git库中,那么会出现频繁的改动和push,这样会引起开发上的不便。

Android Studio配置Git还是比较简单的,麻烦的是可能中间出现各种问题。如果你想了解或感兴趣,请往下看。

.gitignore

Github提供.gitignore这种功能,可以自己指定哪些文件可以不被管理。具体方法是在版本管理的根目录下(与.git文件夹同级)创建一个.gitignore。

Git可以很方便的帮助我们解决这个问题,那就是建立项目文件过滤规则。

首先你得下载Git客户端,网址:。

应用实例

项目中有clist.h clist.c  main.c三个文件,编译执行后,生成了三个文件  clist.o  main.o  main。这三个文件是不需要进行版本管理的,所以需要忽略这些文件,使用 git  stauts查看后,发现这三个文件也是处于 Untracked files状态。而实际上我们是想忽略他。

图片 1

使用gitignore文件来解决这个问题,步骤是:

 

S1:      touch  .gitignore     #创建gitignore隱藏文件  
S2:      vim    .gitignore     #编辑文件,加入指定文件  
         #下面是我的gitignore文件的内容  
         #忽略gitignore文件  
         .gitignore  
         #忽略后缀名为.o和.a的文件  
         *.[oa]  
         #显示指定忽略名称为main的文件  
         main

 

文件.gitignore的格式规范:

  • #为注释
  • 可以使用shell所使用的正则表达式来进行模式匹配 
  • 匹配模式最后跟"/"说明要忽略的是目录
  • 使用!取反(例如目录中包含  test.a,并且gitignore文件中包含  *.[oa],如果在文件中加入 !test.a  表明忽略除test.a文件以外的后缀名为.a或者.o的文件)

配置完.gitignore文件后,执行git status命令,会发现那三个文件不再是Untracked files了,也就完成了忽略指定文件的功能。

GitHub 教程系列文章: 

GitHub 使用教程图文详解  http://www.linuxidc.com/Linux/2014-09/106230.htm 

Git 标签管理详解 http://www.linuxidc.com/Linux/2014-09/106231.htm 

Git 分支管理详解 http://www.linuxidc.com/Linux/2014-09/106232.htm 

Git 远程仓库详解 http://www.linuxidc.com/Linux/2014-09/106233.htm 

Git 本地仓库(Repository)详解 http://www.linuxidc.com/Linux/2014-09/106234.htm 

Git 服务器搭建与客户端安装  http://www.linuxidc.com/Linux/2014-05/101830.htm 

Git 概述 http://www.linuxidc.com/Linux/2014-05/101829.htm 

分享实用的GitHub 使用教程 http://www.linuxidc.com/Linux/2014-04/100556.htm 

GitHub 的详细介绍:请点这里
GitHub 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-01/111959.htm

图片 2

git中提供两种过滤机制,一种是全局过滤机制,即对所有的git都适用;另一种是针对某个项目使用的过滤规则。个人倾向于第二种。

根据需要下载相应的版本,并安装。然后在Android Studio中指定git.exe,点击“Test”,成功则会弹出以下提示。

以我的一个项目为例,该项目用.net开发,.config文件、包括生成的bin/Debug, bin/Release文件等,我希望不加入git管理。

图片 3

在代码目录下建立.gitignore文件:vim .gitignore ,内容如下:

由于我用的是Android Studio 2.0 Preview,根本不存在“Enable Version Control Integration”提示,害我找了半天 T~T。其实有个类似的操作。

#过滤数据库文件、sln解决方案文件、配置文件 
*.mdb 
*.ldb 
*.sln 
*.config 
 
 
#过滤文件夹Debug,Release,obj 
Debug/ 
Release/ 
obj/ 

图片 4

1:# 此为注释  ,将被git忽略

就是这个“Create Git Repository”,不然你会一直得到“...such that source detected in git but Unregistered Vcs root detected”提示。以下图示中unregistered roots上面的两个工程就完成了配置。

2:*.a  忽略所有.a结尾的文件

图片 5

3:!lib.a  但lib.a除外

完成了这一步,往下就是为git添加remote了。我使用开源中国在线代码托管,先得到一个地址:.

4:/TODO  仅仅忽略项目根目录下的TODO文件,不包括subdir/TODO

打开git base,并切换到项目的根目录,输入以下命令

5:build/    忽略build/目录下的所有文件

git remote add origin https://git.oschina.net/***.git

6:doc/*.txt  忽略doc/notes.txt,但不包括doc/server/arch.txt

顺利的话这一步就完成了。

然后调用git add. ,执行 git commit即可。

然后在Android Studio中进行git add操作。

问题:.gitignore只适用于尚未添加到git库的文件。如果已经添加了,则需用git rm移除后再重新commit。

图片 6

Git 教程系列文章: 

接着就是commit directory,最后push代码到远程仓库。

GitHub 使用教程图文详解  http://www.linuxidc.com/Linux/2014-09/106230.htm 

图片 7

Git使用图文详细教程  http://www.linuxidc.com/Linux/2016-11/136781.htm

至此,一次提交结束。

Ubuntu Git安装与使用 http://www.linuxidc.com/Linux/2016-11/136769.htm

默认情况下,Android Studio的项目会有这几个文件夹:build, libs, src. 但每次提交代码到git,都会提示build文件夹中的众多需要提交的文件,其实我们根本不关心build文件夹中的文件改动情况。怎么办呢?利用.gitignore把它过滤掉。

Git 标签管理详解 http://www.linuxidc.com/Linux/2014-09/106231.htm 

在工程根目录建立.gitignore文件,然后添加

Git 分支管理详解 http://www.linuxidc.com/Linux/2014-09/106232.htm 

build

Git 远程仓库详解 http://www.linuxidc.com/Linux/2014-09/106233.htm 

就这么简单!如果你想过滤其它文件,添加相应的规则就可以了。

Git 本地仓库(Repository)详解 http://www.linuxidc.com/Linux/2014-09/106234.htm 

保存.gitignore文件后,还需要运行一下以下几个命令,以便把.gitignore文件提交到git上。

Git 服务器搭建与客户端安装  http://www.linuxidc.com/Linux/2014-05/101830.htm 

git rm -r --cached .
git add .
git commit -m "添加.gitignore文件"
git push origin master

Git 概述 http://www.linuxidc.com/Linux/2014-05/101829.htm 

“git rm -r -- cached 某个目录”,这个命令有点狠,会把目标目录清空,--cached .(注意:此处表示所有的文件,有一个点);"git add .",再把所有的文件重新加入缓存(stages new and modified, without deleted)。如果你当前其它文件已经是最新且已经push到远程仓库,完全可以用add .gitignore了事。

分享实用的GitHub 使用教程 http://www.linuxidc.com/Linux/2014-04/100556.htm 

此外,还可以用以下命令代替git rm -r --cached .

Git从入门到学会 http://www.linuxidc.com/Linux/2016-10/135872.htm

git add -A

Git基本操作详解 http://www.linuxidc.com/Linux/2016-10/135691.htm

表示stages All。新手可能不太明白。好,我从git中的三种文件状态及其转换说起。

Git 的详细介绍:请点这里
Git 的下载地址:请点这里


本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-01/139310.htm

华丽的分隔线

图片 8


1、首先,我在git对应的工程目录下创建一个test.txt,并输入以下字符串并保存。

Hello

2、打开git bash,输入命令git status,查看文件状态

图片 9

你会看到,红色的test.txt处于待提交状态,这个文件被标记为Untracked files,并建议你使用git add <file>...命令将文件包含到待提交清单中。

3、按照提示,使用命令git add test.txt,把这个文件加入到git的快照中,再次git status

图片 10

此时的test.txt状态变成了Changes to be committed,等待被提交。然后同时它还提示你,利用git reset HEAD <file>...可以将文件状态还原成为暂存状态,也即回到Untracked files状态。

4、打开test.txt,向其中加入些内容,保存。

Hello
world

其实就多了world这个字符串。再次用git status查看文件状态。

图片 11

除了之前的“Changes to be committed”状态,还多了“Changes not staged for commit”状态,表明文件已经被修改,但修改还没有放入暂存区域,也就是没生成快照。如果此时进行commit操作,只会提交"Hello",忽略“world”。

根据提示,如果想把最新的修改“Hello world”提交到仓库,需要再次使用命令git add test.txt;如果想撤销修改,即只想提交“Hello”,可以使用git checkout -- test.txt,再次git status,则可以看到状态又改变了。

图片 12

总结:所以,在文件未进行commit操作之前,存在三种状态:Untracked files, Changes not staged for commit, Changes to be committed. 每种状态可以随意转换。


题外话


在git的后续版本中,添加了git stage作为git add的一个同义词,这样在语义上更符合上面的Changes not staged for commit。为什么要增加stage呢?

1、分批提交,降低commit的粒度。

2、文件快照,便于回退。

如果一次提交过多文件,对后续的回滚或跟进无疑非常不利,对问题的定位也不便,体验过估计清楚的。比如你做了两个功能A和B,对应的文件修改分别是a1.java, a2.java; b1.java, b2.java,提交时就可以这样:

git stage a1.java a2.java
git commit -m "功能A"

git stage b1.java b2.java
git commit -m "功能B"

同时,每次修改后stage,任何时刻,都可以回到上一次staged的状态:

git checkout -- test.txt

如果想从stage中删除,则使用reset

git reset test.txt

这个命令就是git stage test.txt的反操作。

更多Android Studio相关内容可以看看以下的有用链接: 

在Ubuntu 15.04下安装Android Studio  http://www.linuxidc.com/Linux/2015-06/119318.htm 

Android Studio 2.0中的模拟器已提速50倍  http://www.linuxidc.com/Linux/2015-11/125481.htm

Ubuntu 12.04(64位)安装Android Studio 全过程 http://www.linuxidc.com/Linux/2013-05/84812.htm 

Android Studio v0.1尝鲜 http://www.linuxidc.com/Linux/2013-05/84681.htm 

Android Studio使用教程 http://www.linuxidc.com/Linux/2013-05/84579.htm 

Android Studio开发指南 http://www.linuxidc.com/Linux/2013-05/84543.htm

Android Studio设置主题 和 不支持中文的问题解决方法 http://www.linuxidc.com/Linux/2013-05/84488.htm 

Android Studio 下载安装以及不能打开的解决办法 http://www.linuxidc.com/Linux/2013-05/84409.htm 

Android Studio安装使用图文教程 http://www.linuxidc.com/Linux/2014-09/106914.htm 

Ubuntu上安装Android Studio 1.3(谷歌 Android IDE 开发)  http://www.linuxidc.com/Linux/2015-08/121004.htm 

Android Studio 的详细介绍:请点这里
Android Studio 的下载地址:请点这里 

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-01/127199.htm

图片 13

TAG标签: 韦德娱乐1946
版权声明:本文由韦德娱乐1946_韦德娱乐1946网页版|韦德国际1946官网发布于韦德国际1946官网,转载请注明出处:Studio配置Git及Git文件状态表达,Git使用gitignore创