使用总结
安装git软件
apt-get install git-core
配置
git config --global "hello"
git config --global hello@
把已有的工程软件源码加入到源码版本管理
新建一个工程文件/root/git_dbtree/repos/kernel。初始化git仓库。
cd /root/git_dbtree/repos/kernel/
git --bare init
到本地工作目录下,就可以开始用git开控制代码了。
cd /root/mywork/
先取出一个工程
git clone /root/git_dbtree/repos/kernel 2kernel
cd ./2kernel
为远程仓库重新命名,如果你乐意用/root/git_dbtree/repos/kernel,当然也没有问题了。
git remote add 3kernel /root/git_dbtree/repos/kernel
说明:如果这一步你不做,下面的3kernel要使用/root/git_dbtree/repos/kernel来代替了。
复制文件到当前目录:
cp -a ../1kernel /. ./
当前目录是2kernel/,我使用了1kernel、2kernel、3kernel来表示不同,避免同样的名字导致的混乱。
把文件纳入版本:
git add .
提交当前版本:
git commit -m "kernel first, version 1.0.0"
提交到主干
git push 3kernel master
到目前为止,源码已经提交到了git数据库。
从主机下载一个版本
本地取出一个工程
git clone /root/git_dbtree/repos/kernel 4kernel
以上这些,都是在同一台电脑上的操作(有git数据库的电脑,称作服务器吧),如果另一台电脑需要从服务器上下载源码,首先需要安装git,然后执行如下命令:
git clone ssh://192.168.1.127/root/git_dbtree/repos/kernel 5kernel
当然,过程中会提示输入远程主机的密码。
支持多种协议,除了HTTP(s)以外,还支持SSH、Git、本地文件协议等,下面是一些例子。
1 2 3 4 5 6 7 |
$ git clone http[s]:///path/to/repo.git/ $ git clone ssh:///path/to/repo.git/ $ git clone git:///path/to/repo.git/ $ git clone /opt/git/project.git $ git clone file:///opt/git/project.git $ git clone ftp[s]:///path/to/repo.git/ $ git clone rsync:///path/to/repo.git/ |
协议还有另一种写法。
1 |
$ git clone [user@]:path/to/repo.git/ |
通常来说,Git协议下载速度最快,SSH协议用于需要用户认证的场合。
更改和提交
工作目录4kernel/
git remote add 6kernel /root/git_dbtree/repos/kernel
git add init/version.c
git add drivers/oem_drv/battery.c
git commit -m " kernel V1.0.1, edit test "
git push 6kernel master
是个别名,你可以用任何名字。如果不执行第1步操作,第5步操作就要改为
git push /root/git_dbtree/repos/kernel master
实际操作中,android源码提交管理后,git clone 会丢失部分文件,导致编译失败。
解决方法很简单,提交前,需要删除所有的.git目录和.gitignore文件。
=============================================================================
git add xx命令可以将xx文件添加到暂存区。
如果有很多改动可以通过 git add -A .来一次添加所有改变的文件。注意 -A 选项后面还有一个句点。
git add -A表示添加所有内容;
git add . 表示添加新文件和编辑过的文件不包括删除的文件;
git add -u 表示添加编辑或者删除的文件,不包括新添加的文件。