Chinaunix首页 | 论坛 | 博客
  • 博客访问: 264351
  • 博文数量: 42
  • 博客积分: 25
  • 博客等级: 民兵
  • 技术积分: 420
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-17 10:05
文章存档

2021年(1)

2019年(1)

2017年(3)

2016年(27)

2015年(4)

2014年(6)

我的朋友

分类: LINUX

2015-11-16 15:06:46

git使用总结

A. 安装git软件

apt-get install git-core

配置

git config --global user.name "hello"

git config --global user.email hello@163.com

 

B.把已有的工程软件源码加入到源码版本管理

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/,我使用了1kernel2kernel3kernel来表示不同,避免同样的名字导致的混乱。

 

把文件纳入版本:

git add .

 

提交当前版本:

git commit -m "kernel first, version 1.0.0"

 

提交到主干

git push 3kernel master

 

到目前为止,源码已经提交到了git数据库。

C.从主机下载一个版本

本地取出一个工程

         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)以外,还支持SSHGit、本地文件协议等,下面是一些例子。

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协议用于需要用户认证的场合。

D.更改和提交

工作目录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

E.注意事项

实际操作中,android源码提交管理后,git clone 会丢失部分文件,导致编译失败。
解决方法很简单,提交前,需要删除所有的.git目录和.gitignore文件。

=============================================================================
git add xx命令可以将xx文件添加到暂存区。

如果有很多改动可以通过 git add -A .来一次添加所有改变的文件。注意 -A 选项后面还有一个句点。
git add -A表示添加所有内容;
git add . 表示添加新文件和编辑过的文件不包括删除的文件;
git add -u 表示添加编辑或者删除的文件,不包括新添加的文件。

阅读(2186) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~