歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux基礎教程:AndroidStudio配置Git及Git文件狀態說明

Linux基礎教程:AndroidStudio配置Git及Git文件狀態說明

日期:2017/2/25 10:33:52   编辑:Linux教程

Android Studio配置Git還是比較簡單的,麻煩的是可能中間出現各種問題。如果你想了解或感興趣,請往下看。

首先你得下載Git客戶端,網址:http://git-scm.com/download/。

根據需要下載相應的版本,並安裝。然後在Android Studio中指定git.exe,點擊“Test”,成功則會彈出以下提示。

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

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

完成了這一步,往下就是為git添加remote了。我使用開源中國在線代碼托管,先得到一個地址:https://git.oschina.net/***.git.

打開git base,並切換到項目的根目錄,輸入以下命令

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

順利的話這一步就完成了。

然後在Android Studio中進行git add操作。

接著就是commit directory,最後push代碼到遠程倉庫。

至此,一次提交結束。

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

Hello
world

其實就多了world這個字符串。再次用git status查看文件狀態。

除了之前的“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,則可以看到狀態又改變了。

總結:所以,在文件未進行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的反操作。

Copyright © Linux教程網 All Rights Reserved