GIT結合android studio使用總結


使用GIT請閱讀(有git基礎可略過) git指引 http://www.bootcss.com/p/git-guide/ 

一、 下載git

   http://git-scm.com/download/  

二、 安裝

    全部默認配置即可。  

三、 配置

    

    運行Git Bash   

(一) 配置用戶信息: 

  輸入以下命令: 

git config --global core.ignorecase false

git config --global user.name "YourName"   

git config --global user.email " YourName@mindmini.com"

(二) 生成密鑰

ssh-keygen -t rsa -C "YourName@mindimi.com" -f ~/.ssh/YourName

 

 

  此時會 ~/.ssh 目錄下生成YourName 和YourName.pub 兩個文件。

  為了開通git用戶,請把YourName.pub,發送至GIT 管理員。

  以上配置用戶信息和生成密鑰的過程是為了便於管理用的,自己平時用的話可以略過此步驟。

四、使用android studio中的vcs工具初次上傳初始代碼到一個新的遠程倉庫。

  1、點擊AS菜單欄中【VCS】,選擇“Create Git Repository”,從而創建出與AS關聯該項目的一個本地倉庫。

                            圖1

2、點擊AS菜單欄中【VCS】,選擇“GIT”,接着選擇“Remotes...”,至此在彈窗中點擊加號新建關聯到遠程庫,在圖3的彈窗中,1處的名稱要記住了,后面會用到;2處是你遠程庫的鏈接地址。

                                圖2

                

                                圖3

3、選中要上傳的項目右擊,選擇“Git”,在選擇“Add”,在選擇“Commit Directory......”。

4、在AS的Terminal窗口中輸入命令:git branch --set-upstream master origin/master 。此命令中的“origin”就是步驟2中所提到的名稱;“ master”為遠程庫的分支名稱。

5、此步是因為遠程庫中有個"README.md"文件,而你的本地庫中沒有,所以用此步來合並代碼。在AS的Terminal窗口中輸入命令:git pull --rebase origin master。此命令中的“origin”就是步驟2中所提到的名稱;“ master”為遠程庫的分支名稱。

6、點擊工具欄中的同步代碼的圖標(向上的箭頭),要選擇"commit and push"。

至此已經將代碼同步到了遠程庫中。

五、GIT操作:

  1、刪除遠程庫上的文件或者文件夾步驟說明。

    1)先把代碼更新到跟遠程庫一樣。

    2)git rm 文件名               注:用你要刪除的文件名替換掉“文件名”。此命令是刪除文件

      git rm r 文件夾名       注:用你要刪除的文件夾名替換掉“文件夾名”。此命令是刪除文件夾

      git rm --cached "文件路徑"            注:不刪除物理文件,僅將該文件從緩存中刪除。應用場景:有文件不小心commit到了服務器。

      git rm --f "文件路徑"     注:不僅將該文件從緩存中刪除,還會將物理文件刪除(不會回收到垃圾桶)。

    3)git commit -m"自己備注的刪除說明"

    4)git push origin master

    執行完這四步就可以保留下本地的文件或者文件夾不變,只是刪除了本地庫和遠程庫的文件或者文件夾。

六、使用vcs進行pull和push操作出現錯誤

  錯誤提示內容:Could not read from remote repository.或者Invalid user or password.

  處理辦法:file-->setting......-->version control-->git-->SSH executable:Native。如下圖:

 

 

七:git的回滾或撤銷:

1、在工作區的代碼

git checkout -- a.txt   # 丟棄某個文件,或者
git checkout -- .       # 丟棄全部

注意:git checkout – . 丟棄全部,也包括:新增的文件會被刪除、刪除的文件會恢復回來、修改的文件會回去。這幾個前提都說的是,回到暫存區之前的樣子。對之前保存在暫存區里的代碼不會有任何影響。對commit提交到本地分支的代碼就更沒影響了。當然,如果你之前壓根都沒有暫存或commit,那就是回到你上次pull下來的樣子了。

2、代碼git add到緩存區,並未commit提交

git reset HEAD .  或者
git reset HEAD a.txt

這個命令僅改變暫存區,並不改變工作區,這意味着在無任何其他操作的情況下,工作區中的實際文件同該命令運行之前無任何變化

3、git commit到本地分支、但沒有git push到遠程

git log # 得到你需要回退一次提交的commit id
git reset --hard <commit_id>  # 回到其中你想要的某個版
或者
git reset --hard HEAD^  # 回到最新的一次提交
或者
git reset HEAD^  # 此時代碼保留,回到 git add 之前

4、git push把修改提交到遠程倉庫
1)通過git reset是直接刪除指定的commit

git log # 得到你需要回退一次提交的commit id
git reset --hard <commit_id>
git push origin HEAD --force # 強制提交一次,之前錯誤的提交就從遠程倉庫刪除

2)通過git revert是用一次新的commit來回滾之前的commit

git log # 得到你需要回退一次提交的commit id
git revert <commit_id>  # 撤銷指定的版本,撤銷也會作為一次提交進行保存

3) git revert 和 git reset的區別
- git revert是用一次新的commit來回滾之前的commit,此次提交之前的commit都會被保留;
- git reset是回到某次提交,提交及之前的commit都會被保留,但是此commit id之后的修改都會被刪除

八、使用Android studio創建分支,並上傳到遠程庫。

1、如下圖,點擊標注1:創建本地分支。成功后出現在標注2,此時標注3是空白的,因為遠程庫沒有該分支,此時使用vcs都是失敗的。需要執行命令:git push --set-upstream origin 分支名   

然后使用vcs就沒有問題了。

九、git打標簽(tag)

git tag的用法

我們常常在代碼封辦時,使用git 創建一個tag ,這樣一個不可修改的歷史代碼版本就像被我們封存起來一樣,不論是運維發布拉取,或者以后的代碼版本管理,都是十分方便的

git的tag功能

git 下打標簽其實有2種情況

  • 輕量級的:它其實是一個獨立的分支,或者說是一個不可變的分支.指向特定提交對象的引用
  • 帶附注的:實際上是存儲在倉庫中的一個獨立對象,它有自身的校驗和信息,包含着標簽的名字,標簽說明,標簽本身也允許使用 GNU Privacy Guard (GPG) 來簽署或驗證,電子郵件地址和日期,一般我們都建議使用含附注型的標簽,以便保留相關信息

所以我們推薦使用第二種標簽形式

創建tag

git tag -a V1.2 -m 'release 1.2'

上面的命令我們成功創建了本地一個版本 V1.2 ,並且添加了附注信息 'release 1.2'。請保持tag名和branches名不要重名。

查看tag

git tag

要顯示附注信息,我們需要用 show 指令來查看

git show V1.2

但是目前這個標簽僅僅是提交到了本地git倉庫.如何同步到遠程代碼庫

git push origin --tags

如果剛剛同步上去,你缺發現一個致命bug ,需要重新打版本,現在還為時不晚.

git tag -d V1.2

到這一步我們只是刪除了本地 V1.2的版本,可是線上V1.2的版本還是存在,如何辦?這時我們可以推送的空的同名版本到線下,達到刪除線上版本的目標:

git push origin :refs/tags/V1.2

如何獲取遠程版本?

git fetch origin tag V1.2

VCS操作失敗

1、錯誤:Could not read from remote repository
  解決方法:如下圖。
        將:SSH executable的值設置為Native。

 

 

 

 

鳴謝:

   1、 https://www.cnblogs.com/lao-liang/p/5019549.html

    2、http://blog.csdn.net/u010316858/article/details/50053387

 

     

 

   

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM