使用GIT前請閱讀(有git基礎可略過) git指引 :http://www.bootcss.com/p/git-guide/
一、 下載git
二、 安裝
全部默認配置即可。
三、 配置
運行Git Bash
(一) 配置用戶信息:
輸入以下命令:
git config --global core.ignorecase false git config --global user.name "YourName" git config --global user.email " [email protected]" |
(二) 生成密鑰
ssh-keygen -t rsa -C "[email protected]" -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之後的修改都會被刪除
鳴謝:
1、 https://www.cnblogs.com/lao-liang/p/5019549.html
2、http://blog.csdn.net/u010316858/article/details/50053387