1. 程式人生 > >git 倉庫管理常用命令總結——android方面(持續更新中)

git 倉庫管理常用命令總結——android方面(持續更新中)

配置身份

git config --global user.name "muzi102"
git config --global user.email "[email protected]"
//檢視是否配置成功
git config --global user.name 
git config --global user.email 

建立倉庫->到需要建立倉庫的地方(D:\AndroidProject\MyPlayer)->右鍵選擇Git Bash Here ->輸入命令列:git init

$ git init
Initialized empty Git
repository in D:/AndroidProject/MyPlayer/.git/

建立成功後,會在目錄下生成一個隱藏的.git檔案,記錄著Git的所有操作,可以通過ls-al命令檢視

$ ls -al
total 95
drwxr-xr-x 1 yunyan.lin 1049089    0 四月 19 11:45 ./
drwxr-xr-x 1 yunyan.lin 1049089    0 四月 18 22:18 ../
drwxr-xr-x 1 yunyan.lin 1049089    0 四月 19 11:53 .git/

提交原生代碼(先add新增需要提交的檔案,在commit執行提交,記得寫提交內容說明)

//新增檔案
git add build.gradle
//新增資料夾
git add app
//新增所有的檔案
git add .
//新增完之後就可以提交程式碼了 
git commit -m "Frist commit"

忽略檔案(可以找as下面自己生成的.gitignore檔案,在裡面新增相應的忽略檔案即可)

檢視修改內容–檢視自上次提交後修改的內容(git status)

$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to
update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: Player/src/main/java/com/a51nxm/myplayer/Formatter.java no changes added to commit (use "git add" and/or "git commit -a")

檢視更改的內容(git diff(檢視所有檔案修改的內容) )
-號表示刪掉的程式碼
+號表示新增的程式碼

-        //再繪製一遍Thumb,防止被覆蓋掉
+        //再繪製一遍Thumb
+        //防止被覆蓋掉

然後commit 下就能提交變更的內容

$ git commit -m "測試修改"
[master aeeddf0] 測試修改
 1 file changed, 2 insertions(+), 1 deletion(-)

撤銷未提交的修改(即我們的修改不符合自己需要的,撤銷的相應的修改)
1、未add新增前的撤銷(添加了“//我只是用來測試撤銷修改的”,然後checkout倉庫裡面的替換掉)

-
+        //我只是用來測試撤銷修改的
     }

     private void drawLine(Canvas canvas) {

-0001-1405 MINGW64 /d/AndroidProject/MyPlayer (master)
$ git checkout Player/src/main/java/com/a51nxm/myplayer/LiveSeekBar.java

 MINGW64 /d/AndroidProject/MyPlayer (master)
$ git diff

2、已經add進去的修改檔案,需要先取消新增(git reset+檔名),然後再checkout出原來的檔案替換掉

$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   Player/src/main/java/com/a51nxm/myplayer/LiveSeekBar.java

no changes added to commit (use "git add" and/or "git commit -a")

-0001-1405 MINGW64 /d/AndroidProject/MyPlayer (master)
$ git checkout Player/src/main/java/com/a51nxm/myplayer/LiveSeekBar.java

-0001-1405 MINGW64 /d/AndroidProject/MyPlayer (master)

檢視提交記錄(檢視我們提交的記錄資訊和內容) git log

$ git log
commit d60f91aaf4b80cad843fc919b2166725de4f317b (HEAD -> master)
Author: muzi102 <[email protected].com>
Date:   Fri Apr 20 10:19:51 2018 +0800

    第二次提交

commit aeeddf04a3f8498a785b9b1308b96bbc465b40fd
Author: muzi102 <[email protected].com>
Date:   Fri Apr 20 10:01:39 2018 +0800

    測試修改

commit d28c8b4e75b8d7d16950e86ec562f4923d081b2e
Author: muzi102 <[email protected].com>
Date:   Thu Apr 19 12:07:19 2018 +0800

    Frist commit.

檢視內行提交的內容 git log +行號 -1 -p(p檢視修改的內容)

git log 

檢視當前分支 git branch

-0001-1405 MINGW64 /d/AndroidProject/MyPlayer (master)
$ git branch
* master

建立分支(git branch version1.0)

-0001-1405 MINGW64 /d/AndroidProject/MyPlayer (master)
$ git branch version1.0

-0001-1405 MINGW64 /d/AndroidProject/MyPlayer (master)
$ git branch
* master
  version1.0

分支合併到主支上

git checkout master
git merge version1.0

同步到遠端倉庫

git push origin master

刪掉分支

-0001-1405 MINGW64 /d/AndroidProject/MyPlayer (master)

$ git merge version1.0
----------------------

Already up to date.

clone 遠端分支 git clone +遠端倉庫地址

-0001-1405 MINGW64 /d/AndroidProject/MyPlayer (master)

$ git clone https://github.com/panda102/MUZI102
-----------------------------------------------

Cloning into 'MUZI102'...
remote: Counting objects: 716, done.
remote: Compressing objects: 100% (13/13), done.
Receiving objects:   6% (48/716), 172.01 KiB | 5.00 KiB/s

在本地修改,然後提交到本地,在push到遠端倉庫 git push origin master

git push origin master

遠端倉庫同步到本地 git pull origin master(拉取並且合併)

 git pull origin master

本地git 連線github倉庫 先生成ssh檔案


ssh-keygen -t rsa -C "[email protected]"//注意ssh- 不能有空格 不然會出現Bad escape character 'ygen'..
------------------------------------------------------------------------

Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/yunyan.lin/.ssh/id_rsa):
Created directory '/c/Users/yunyan.lin/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/yunyan.lin/.ssh/id_rsa.
Your public key has been saved in /c/Users/yunyan.lin/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:u9ieyEUV+5JBVXl1n306nTFXk5+i0VnwIUdV+jYvV4M 1565675791@qq.com
The key's randomart image is:

1、出現上圖,就說建立成功啦,再去使用者主目錄裡找到.ssh資料夾,裡面有id_rsa和id_rsa.pub兩個檔案,這兩個就是SSH Key的祕鑰對,id_rsa是私鑰,不能洩露,id_rsa.pub是公鑰,可以公開。
2.接下來到GitHub上,開啟“Account settings”–“SSH Keys”頁面,然後點選“Add SSH Key”,填上Title(隨意寫),在Key文字框裡貼上 id_rsa.pub檔案裡的全部內容。
3.驗證是否成功,在git bash裡輸入下面的命令


$ ssh -T [email protected]
-----------------------

Hi panda102/51nxm.51english! You've successfully authenticated, but GitHub does not provide shell access.

.下面開始設定username和email,因為github每次commit都會記錄他們

$ git config --global user.name  "name"//你的GitHub登陸名
$ git config --global user.email "[email protected]"//你的GitHub註冊郵箱

接下來就是把本地倉庫傳到github上去,之前在GitHub上建好一個新的倉庫是,跳轉的頁面,完全按照上面的只是操作就可以了。

$ git remote add origin [email protected].com:flora0103/example.git    //關聯一個遠端庫命令, [email protected].com:flora0103/example.git   這個是自己遠端庫
git push -u origin master    //關聯後,第一次推送master分支的所有內容命令,此後,每次本地提交後,就可以使用命令git push origin master推送最新修改

強行推送


$ git push -u origin master -f
------------------------------

Counting objects: 73, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (54/54), done.
Writing objects: 100% (73/73), 123.99 KiB | 11.27 MiB/s, done.
Total 73 (delta 0), reused 0 (delta 0)
To https://github.com/panda102/51nxm.51english.git
 + 18d71c4...dcbb28f master -> master (forced update)
Branch 'master' set up to track remote branch 'master' from 'origin'.

檢視遠端倉庫分支

//檢視倉庫地址
git remote -v 
//檢視分支情況
git branch -a