一、當前git已經成成爲代碼管理最受歡迎的工具之一,下面簡單說一下其使用。之前寫過一篇關於git關聯github的,可以查看http://fuzhenwen.top:8000/article/22/preview 。
一般項目開發者,首先得把項目fork到自己的profile中,一般人沒有前線直接向origin直接提交代碼,只能向自己的profile提交,確定要找到對應的dev分支,然後pull request,把鏈接發給merge代碼的人。
二、安裝
1.在控制窗口輸入,開始安裝。
fuge@fuge2008:~$ sudo apk-get install git
2.輸入自己的github郵箱,進行關聯。
fuge@fuge2008:~$ git config --global user.email "[email protected]"
3.查看關聯是否成功(成功結果如下:)
fuge@fuge2008:~$ git config --list
user.name=Fuge2008
[email protected]
4.生成公私鑰,生成文件是控制是否能提交代碼的身份依據,請妥善保管,如果之前有的話,會提示是否覆蓋,請留意。(下面是成功的結果)。
fuge@fuge2008:~/workspace$ ssh-keygen -trsa -C "[email protected]"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/fuge/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/fuge/.ssh/id_rsa.
Your public key has been saved in /home/fuge/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:YyZa/ayb6ge1zfXXXXXXXXWtMtNdm4tzyqgvZc9GjSiSE [email protected]
The key's randomart image is:
+---[RSA 2048]----+
| |
| oES==.o o .|
| o.*o%B.+....|
| . .*o+B . + |
| oo+=. . .|
| .+o=+.oo. |
+----[SHA256]-----+
5.下面是即可查看到公鑰的內容,把ssh-rsa後面的部分複製到github的Setting->SSH keys->New SSH Key,創建一個key,保存即可。(下面是查看id_rsa.pub的方法)
fuge@fuge2008:~$ cd .ssh
fuge@fuge2008:~/.ssh$ ls
d_rsa id_rsa.pub known_hosts
fuge@fuge2008:~/.ssh$ cat id_rsa.pub
ssh-rsa B3NzaC1yc2EAAAAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXtD [email protected]
三、常用操作命令
#克隆項目
fzw@onyx:~/mnt/workspace/$ git clone [email protected]:fuzhenwen3/onyx.git
#查看看git狀態
fzw@onyx:~/mnt/workspace/3128_android_rom/kepler$ git st
#查看指定文件的git操作日誌
fzw@onyx:~/mnt/workspace/3128_android_rom/kepler$ git log -p android/kreader/app/common/OnyxPinyinIME/
#查看git分支
fzw@onyx:~/mnt/workspace/3128_android_rom/kepler$ git br
#查看git所有分支
fzw@onyx:~/mnt/workspace/3128_android_rom/kepler$ git br -a
#查看當前父子倉庫
fzw@onyx:~/mnt/workspace/3128_android_rom/kepler$git sub
#查看當前分支的全部子模塊
fzw@onyx:~/mnt/workspace/3128_android_rom$ git submodule foreach git br
#切換到origin
fzw@onyx:~/mnt/workspace/3128_android_rom$ git remote add origin [email protected]:onyx-intl/3128_android_rom.git
#來取更新當前分支的子模塊
fzw@onyx:~/mnt/workspace/3128_android_rom$ git submodule foreach git pull
#來取更新
fzw@onyx:~/mnt/workspace/3128_android_rom$ git submodule update
#開始同步
fzw@onyx:~/mnt/workspace/3128_android_rom$ git submodule sync
#取消dev分支的左右修改
fzw@onyx:~/mnt/workspace/3128_android_rom$ git submodule foreach git co dev
#git提交記錄
fzw@onyx:~/mnt/workspace/3128_android_rom/kepler$ git log
#git變化情況對比
fzw@onyx:~/mnt/workspace/3128_android_rom$ git git diff
#git某個文件變化情況對比
fzw@onyx:~/mnt/workspace/3128_android_rom/kepler$ git diff android/kreader/app/common/OnyxPinyinIME/src/main/java/com/onyx/pinyinime/SoftKeyboardView.java
#展示某條記錄詳情,show後面的是在diff中查到的id號
fzw@onyx:~/mnt/workspace/3128_android_rom/kepler$ git show 87d65dd8e724a84fba05bede6d79016856fe7e2a
#查看代碼情況,如果分支不對的話不對的話,需要add一下新的路徑
fzw@onyx:~/mnt/workspace/3128_android_rom/kepler$ git remote -v
#要添加一個新的遠程倉庫,可以指定一個簡單的名字(mine),以便將來引用,運行 git remote add [shortname] [url]:
fzw@onyx:~/mnt/workspace/3128_android_rom/kepler$git remote add mine git://github.com/paulboone/ticgit.git
#此時用git remote -v查看分支的話會出現新加進去的分支,如下
origin git://github.com/schacon/ticgit.git
mine git://github.com/paulboone/ticgit.git
#切換分支,由orgin切換到mine
fzw@onyx:~/workspace/3128_android_rom$git fetch origin mine:mine
#將改動後的代碼add進去
fzw@onyx:~/mnt/workspace/3128_android_rom/kepler$ git add android/kreader/app/common/OnyxPinyinIME/src/main/java/com/onyx/pinyinime/SoftKeyboardView.java
#將單個文件add進去
fzw@onyx:~/mnt/workspace/3128_android_rom/frameworks$ git add base/packages/DocumentsUI/res/layout/fragment_directory.xml
#git co . # 指定取消某些文件的改動
fzw@onyx:~/mnt/workspace/3128_android_rom/frameworks$ git co base/packages/DocumentsUI/res/values-sw720dp/styles.xml base/packages/DocumentsUI/res/values/styles.xml base/packages/SettingsProvider/res/values/defaults.xml
#commit代碼
fzw@onyx:~/mnt/workspace/3128_android_rom/kepler$ git commit -m "Screen adaptation to the keyboard"
#如果自己的是fork過來的分支,那push前要記得先向母項目pull,更新項目後再push
fzw@onyx:~/mnt/workspace/3128_android_rom/kepler$ git pull origin dev
#push代碼
fzw@onyx:~/mnt/workspace/3128_android_rom/kepler$ git push mine dev