您的位置:首页 > 运维架构 > Linux

Linux下用git工具下载代码以及git管理

2020-02-29 20:10 323 查看

1.代码下载

以下载0xdroid代码为例:

在当前用户目录,将下列代码保存为gitlab:

#!/bin/sh
sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential
zip curl libncurses5-dev zlib1g-dev valgrind sun-java5-jdk

mkdir  $HOME/bin
echo "export  PATH=$HOME/bin:$PATH">>$HOME/.bashrc
export  PATH=$HOME/bin:$PATH
curl   http://android.git.kernel.org/repo > $HOME/bin/repo
chmod  a+x   $HOME/bin/repo
mkdir $HOME/0xdroid
cd $HOME/0xdroid 
repo init -u git://gitorious.org/0xdroid/manifest.git
repo sync

完---------------------------

启用控制台:

$cd  包含gitlab文件的目录

$sudo chmod a+x gitlab

输入用户密码

$./gitlab

至此,等待代码下载完毕,中间可能会需要用户输入密码,安装java1.5的时候需要用户自己点确定。等待过程会比较长,完毕后,0xLAB的Android代码就全部下载完毕。

若需要下载别的网站的代码(需该网站提供git下载),可修改gitlab脚本文件,其中0xdroid目录可改为自己的项目名,git地址:git://gitorious.org/0xdroid/manifest.git 可改为提供代码的git网址。(文件后缀需包含.git)

另类下载方法:

直接在你的项目目录敲:

git clone git://gitorious.org/0xdroid/manifest.git


这种方法需先安装git,即:sudo apt-get install git-core

 

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

2.代码更新

$cd 项目所在目录

$repo sync

另类更新方法:

git pull git://gitorious.org/0xdroid/manifest.git

 

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

3.代码管理

<1>.导出文件

 项目开发过程中需要多个程序员共同开发,这就需要从服务器上下载代码。

假定服务器ip是:192.168.0.1  用户名:admin

git代码仓库位于/home/admin/0xdroid

假定我们需要修改Setting这个package,可调用(需先安装ssh):

$ git clone admin@192.168.0.1:~/0xdroid/packages/apps/Settings

<2>.查看修改信息

进入本地的setting目录:

$ git whatchanged

获得修改的信息,其信息格式一般为:

Commit  22XXXXXXXXXXXXXXX(一串字符)

……..

Commit 11XXXXXXXXXXXXXXXX

………

如果直接是git diff,那么是与最近的一次commit进行比较,这就是为什么我们可以直接用git diff命令获得我们修改的代码(注意,前提是我们没有commit过)。

如果想知道更多的修改信息,我们需要用到以下命令:

$ git diff <commit>

如上面的信息,如果利用以下命令:

$ git diff 11XXXXXXXXXXXXXXXX

则可以获得与commit 11XXXXXXXXXXXX的不同信息,利用这个信息,我们就可以很容易地知道文件的哪些东西在哪一次被改变过,从而也使我们有目的地去看代码。

<3>提交至本地代码

当程序员觉得自己的代码修改好了,就需要提交至本地的git仓库中。

首先,你可以利用

$ git status

获得当前的git里的信息,它会告知你以上哪些文件修改过,是否添加到本地git仓库,一般刚修改完代码,是没有add(或是update)进去,因此我们需要add进去,命令如下:

$ git add –A

这个命令将全部修改(添加)过的文件add进去,当然你也可以单独add,如:

$git add src/com/android/settings/EthernetSettings.java

此时你虽然将其add进去了,但是你需要注意的是仅仅刷新了git,而没有将你修改的内容添加进去,此时,你紧接着需要commit,将内容commit进去,命令:

$git commit –m <commit>

如可以利用下面的命令

$git commit –m “Enable ehternet proxy”

这样你就将你刚刚add进去的文件进行了一次commit,如果你此时利用$ git status获得信息,你在最上面的一行可以看到你自己的commit

<4>.提交代码至服务器

进行了commit之后,你就可以与远程的工程进行合并了,命令

$ git push admin@192.168.0.1:~/0xdroid/packages/apps/Settings

它会将你修改过的内容与原工程进行合并,并且将你的commit加进去,至此完成了代码的修改和合并。

<5>.代码恢复

刚才我们利用git whatchanged可以得到commit,从而知道修改的信息,那么利用

$git reset <commit>

就可以恢复到你所需要的commit,如:

$git reset 11XXXXXXXXXXXX

就恢复到commit为11XXXXXXXXXXXXXXXXXX的那个修改了。但是我们得知道git reset 默认不修改代码,即commit恢复了,代码并没有改变。

最后可以利用:

$git checkout –f

恢复代码,至此代码可以恢复到最近的commit

因此,如果我们自己没有进行commit的话,直接利用$git checkout –f 就可以恢复到我们下载时的代码,因为那个commit是最近的一次commit。

<6>发布patch

为了得到带commit信息的patch文件,我们在获得patch时可按以下步骤:
-1. 进入到当前目录,改变你的用户名和邮件
   $ git config user.name“your name”
   $ git config user.email “your email”
-2. 添加并提交你的修改,这个跟上次git简单使用方法一样
   $ git add xxx.java
   $ git commit -m “what you want to describe”
-3. 获得patch
   $ git log  (此处是为了获得你提交修改的上一级commit信息,如2xxxxxx)
   $ git format-patch 2xxxxxxx  (获得带有commit信息的patch文件)
-4. patch文件默认在你当前目录下,可以自行查找并修改文件名。
-5. 将上述patch文件打到自己的目录下
   $ git am xxx.patch (这样你的目录下就有了commit信息)
-6. 另:原来打patch使用patch -p1 < xx.patch 较为复杂,其实,在git下有
   $ git apply xx.patch  (可以打patch,不带commit信息)
   再另:上次写的git whatchanged可以直接用git log代替,获得修改信息。

1ac3b
  • 点赞
  • 收藏
  • 分享
  • 文章举报
wallace1_wang 发布了1 篇原创文章 · 获赞 0 · 访问量 759 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐