炼狱,是为追逐光芒
分类: LINUX
2016-02-16 17:21:24
git使用总结
apt-get install git-core
配置
git config --global user.name "hello"
git config --global user.email hello@163.com
1.新建一个工程文件/root/git_dbtree/repos/kernel。初始化git仓库。
cd /root/git_dbtree/repos/kernel/
git --bare init
2.到本地工作目录下,就可以开始用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
当然,过程中会提示输入远程主机的密码。
git clone支持多种协议,除了HTTP(s)以外,还支持SSH、Git、本地文件协议等,下面是一些例子。
1 2 3 4 5 6 7 |
$ git clone http[s]://example.com/path/to/repo.git/ $ git clone ssh://example.com/path/to/repo.git/ $ git clone git://example.com/path/to/repo.git/ $ git clone /opt/git/project.git $ git clone file:///opt/git/project.git $ git clone ftp[s]://example.com/path/to/repo.git/ $ git clone rsync://example.com/path/to/repo.git/ |
SSH协议还有另一种写法。
1 |
$ git clone [user@]example.com: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
6kernel是个别名,你可以用任何名字。如果不执行第1步操作,第5步操作就要改为
git push /root/git_dbtree/repos/kernel master
实际操作中,android源码提交管理后,git clone 会丢失部分文件,导致编译失败。
解决方法很简单,提交前,需要删除所有的.git目录和.gitignore文件。
=============================================================================
git add xx命令可以将xx文件添加到暂存区。