一、当前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