学习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基础篇(文件操作)

    Python基础篇(文件操作) 一.初始文件操作 使用python来读写文件是非常简单的操作. 我们使用open()函数来打开一个文件, 获取到文件句柄. 然后通过文件句柄就可以进行各种各样的操作了. ...

  2. rabbitmq一个连接多个信道channel

    https://www.cnblogs.com/eleven24/p/10326718.html

  3. curl分析请求的各个部分耗时情况

    curl 命令提供了 -w 参数,解释如下 -w, --write-out Make curl display information on stdout after a completed tran ...

  4. java容器中 哪些是线程安全的

    容器中线程安全的如:vectory,hashtable,非线程安全的如:hashmap,arrylist等.      对于原定义非线程的容器如:hashmap,arraylist可以使用Collec ...

  5. Python中的try-finally

    >>> try: ... raise KeyboardInterrupt ... finally: ... print('Goodbye, world!') ... Goodbye, ...

  6. Ubuntu下的安装notepad++

    Ubuntu下的安装方法: sudo add-apt-repository ppa:notepadqq-team/notepadqq sudo apt-get update sudo apt-get ...

  7. Java排序算法 [选择、冒泡、快排]

    选择排序: 简述:从数组的第一个元素开始,依次与其他所有的元素对比,如果比自身大或小(取决于升序或降序)交换位置. package com.sort; import java.util.Arrays; ...

  8. kubernetes使用kubeadm升级集群

    升级前准本  官网: https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-upgrade/查看可升级的组件 [root@h ...

  9. layui多图上传加隐藏域

    我的情况是,通过layui上传图片调用后端,后端将图片上传后返回图片路径,上传成功后将图片在页面显示出来(避免用户网速不稳定,图片其实还没上传成功就进行下一步操作),然后同步每个图片增加隐藏域,最终表 ...

  10. c++简单String类实现

    #include <iostream> #include <string> using namespace std; class String { public: String ...