学习linux内核一段时间,意识到内核的版本需要严格控制。利用Git工具可以很轻松的完成不同开发人员不同模块之间的代码融合与版本控制 。

1. 首先,安装Git .可以参考廖雪峰的博客  https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

  针对Windows版本安装好了git 之后,需要设置系统环境变量,把HOME对应的环境变量,设置为,C:/user/your_account

2. 然后 新建一个目录 mkdir my_git 新建本地git工程

  root@ubuntu:# cd my_git

  root@ubuntu:# git init

2.1 如果希望托管GIT工程到远程服务器,比如Github,首先需要在github上创建一个空的repo仓库。获取仓库的url:http:xxxx.git

2.2 如果远程服务器上已经有对应的Repo仓库,可以忽略 2,2.1 这两步

3.如果服务器上已经有了一个git工程 只需要把服务器端的工程拉下来就可以。

  git clone root@172.16.11.25:/media/iecu/lancelot/Rcar-H3-Git/

(拉取想要的分支文件)

  origin

-》 i-ECU-B1

>   i-ECU-B2

git pull <远程主机> <远程分支>:<本地分支>

root@ubuntu:# git pull origin master    (git pull origin i-ECU-B2)

3.1如果希望把本地git init的 仓库同步到服务器端可以:

  root@ubuntu:# git remote add origin root@172.16.11.25:/media/iecu/lancelot/Rcar-H3-Git/ 

 (root@172.16.....就是服务器仓库的url:xxxx.git)

(推上想要的分支文件)

$ git push <远程主机名> <本地分支名>:<远程分支名>

root@ubuntu:# git push -u origin master

       (git push -u origin i-ECU-B2)

      hutian@ubuntu:~/git-B2$ git branch -a
      * master
      remotes/origin/i-ECU-B2

4. 这时会在my_git 上看到从服务器上pull下来的工程,接下来就是开发人更新自己的代码和注释了

root@ubuntu:#vim kernel-source/drivers/gpu/drm/bridge/dw-hdmi.c

root@ubuntu:#git add ./kernel-source/drivers/gpu/drm/bridge/dw-hdmi.c

root@ubuntu:# git commit -m "set hdmi connector detect always connected"

5. 对工程中的文件删除代码

首先删除文件夹或者文件

root@ubuntu:# rm -rf Rcar-H3-Git/

然后删除git中的备份文件

root@ubuntu:# git rm Rcar-H3-Git/

同步commit,更新git

root@ubuntu:# git commit -m "clear wrong Rcar-H3-Git"

6.恢复修改之前的工程代码

查看git 的 logs

root@ubuntu:# git log

root@ubuntu:/home/hutian/git# git log
commit d3381d5b0465a34ef70fd56e50243d14f2305dd7
Author: hutian <@qq.com>
Date: Tue Mar :: +

回到之前一个更新commit的状态  (回到前两个用HEAD^^)

root@ubuntu:# git reset --hard HEAD^

回到特定的commit 利用log中的commit ID  d3381d5b.....(只需要前几个字母就好)

root@ubuntu:# git reset --hard  d3381d5b

完成代码恢复功能

7.同步本地git工程和服务器端git工程

$ git push <远程主机名> <本地分支名>:<远程分支名>

root@ubuntu:# git push -u origin master

       (git push -u origin i-ECU-B2)

      hutian@ubuntu:~/git-B2$ git branch -a
      * master
      remotes/origin/i-ECU-B2

上面命令表示,将本地的master分支推送到origin主机的master分支。如果后者不存在,则会被新建。 
origin是一个远程厂库地址

至此 ,完成简单的Git代码管理功能

  • 方式一:修改远程仓库地址

    【git remote set-url origin URL】 更换远程仓库地址,URL为新地址。

  • 方式二:先删除远程仓库地址,然后再添加

    【git remote rm origin】 删除现有远程仓库 
    【git remote add origin url】添加新远程仓库

git remote -v 】查看远程仓库

查看分支   git branch -a   或者-r

删除本地分支:git branch -d  非空 用 -D

跳转分支  用 : git checkout   xx分支

创建新分支 : git checkout -b 新分支,在xx分支下

上传到新分支 :git push origin camera_v1:camera_v1

删除远程fromdevelop分支  git push origin :fromdevelop

解决GIT 上传下载Bash 脚本错误的问题  ,git config --global core.autocrlf false

未完待续。。。。

ubuntu 下 使用 Git 维护 linux kernel版本的更多相关文章

  1. Ubuntu下OpenCV不能被某个python版本识别

    Ubuntu下OpenCV不能被某个python版本识别 Solution: 可以进入相应版本的python,查看该python的path: python import sys print(sys.p ...

  2. Ubuntu下使用git提交代码至GitHub

    一.Ubuntu下安装Git Ubuntu12.04 LTS默认是已经安装Git的,可以使用 git --version 测试是否安装. 如果没有安装,使用命令: sudo apt-get insta ...

  3. ubuntu下的git版本创建

    一.git的特点 二.gei的安装和配置 1.安装命令如下 sudo apt-get install git 2.安装成功后输入 git 3.创建版本库 git init 4.使用 先创建一个txt文 ...

  4. ubuntu: qemu+gdb 调试linux kernel 学习笔记

    声明: 本笔记内容并非本人原创,90%来自网络资料的整合.同时,由于自己是刚刚接触qemu & gdbserver remote debug,本文也就算不得教程,仅供有缘人参考而已. ---- ...

  5. ubuntu下安装git,sublime,nodejs

    用的是VMware10.0版本的虚拟机,很早之前下载的今天就直接用了,安装挺简单记得需要一个序列号.在这里:http://mirrors.163.com/ubuntu-releases/15.04/u ...

  6. Ubuntu下使用Git和GitHub

    刚刚学习git和github,网上的知识太杂太乱.照着折腾了很长的时间,都没有搞出个结果,心里十分痒痒,最后终于在github上看到成果.本文适合刚刚接触github但是急于想看到效果的同学,当然gi ...

  7. Ubuntu下安装Git以及Git帮助手册【转】

    转自:http://milkythinking.com/blog/2011/04/17/install_git_and_manual/ Git简介 Git是一个分布式版本控制系统,对应的是SVN.CV ...

  8. 使用 GIT 获得Linux Kernel的代码并查看,追踪历史记录

    Linux kernel  的官方 GIT地址是: http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git 可以从这个地 ...

  9. linux ubuntu下如何安装并且切换java版本(Unsupported major.minor version 52.0)

    最近在做一个dcos(数据中心操作系统)的东西,需要用marathon来做进程管理.遗憾的是0.6版本的marathon在API方面很是缺少,换成了0.15版本之后,运行时提示“Unsupported ...

随机推荐

  1. Python之随机选择 random

    随机选择:random import random # 从一个序列中随机的抽取一个元素 values=[1,2,3,4,56] # 指定取出N个不同元素 print(random.sample(val ...

  2. css识别空格回车符

    新闻发布系统文字需要换行,后台返回数据包含空格.回车符号需要默认显示出来.在父元素加上css样式 :white-space:pre:即可. 例:<div class="white-sp ...

  3. 【记录】MongoDB

    什么情况建议使用MongoDB? 1:满足对数据库的高并发读写 2:对海量数据的高效存储和访问 3:对数据库高扩展性和高可用性 4:灵活的数据结构,满足数据结构不固定的场景 5:应用需要2000-30 ...

  4. go语言从例子开始之Example3.变量

    在 Go 中,变量 被显式声明,并被编译器所用来检查函数调用时的类型正确性 package main import "fmt" func main() { var 声明 1 个或者 ...

  5. go语言从例子开始之Example13.函数多返回值

    Go 内建多返回值 支持.这个特性在 Go 语言中经常被用到,例如用来同时返回一个函数的结果和错误信息. Example: package main import "fmt" // ...

  6. eclipse maven install后查看报错信息

  7. C/C++ C++ 11 std::move()

    { 0. C++ 标准库使用比如vector::push_back 等这类函数时,会对参数的对象进行复制,连数据也会复制.这就会造成对象内存的额外创建, 本来原意 是想把参数push_back进去就行 ...

  8. MAT内存分析

    先下载 http://www.eclipse.org/mat/downloads.php 配置环境参数 分析一个堆转储文件需要消耗很多的堆空间,为了保证分析的效率和性能,在有条件的情况下,建议分配给 ...

  9. 【LeetCode 41】缺失的第一个正数

    题目链接 [题解] 先明确一点假设给的数字有n个. 那么最后的答案最情况下就是n+1 首先我们先判断一下所给的数组里面有没有1 如果没有直接返回1 否则. 把数组中所有的范围超过n或者小于1的数字全都 ...

  10. linux基础知识汇总(二)-vi/vim

    转:http://blog.csdn.net/sky04/article/details/5662582 vi与vim一样都是编辑器,不同的是vim更高级一些,可以理解是vi的高级版本.vi就像Win ...