ubuntu 下 使用 Git 维护 linux kernel版本
学习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版本的更多相关文章
- Ubuntu下OpenCV不能被某个python版本识别
Ubuntu下OpenCV不能被某个python版本识别 Solution: 可以进入相应版本的python,查看该python的path: python import sys print(sys.p ...
- Ubuntu下使用git提交代码至GitHub
一.Ubuntu下安装Git Ubuntu12.04 LTS默认是已经安装Git的,可以使用 git --version 测试是否安装. 如果没有安装,使用命令: sudo apt-get insta ...
- ubuntu下的git版本创建
一.git的特点 二.gei的安装和配置 1.安装命令如下 sudo apt-get install git 2.安装成功后输入 git 3.创建版本库 git init 4.使用 先创建一个txt文 ...
- ubuntu: qemu+gdb 调试linux kernel 学习笔记
声明: 本笔记内容并非本人原创,90%来自网络资料的整合.同时,由于自己是刚刚接触qemu & gdbserver remote debug,本文也就算不得教程,仅供有缘人参考而已. ---- ...
- ubuntu下安装git,sublime,nodejs
用的是VMware10.0版本的虚拟机,很早之前下载的今天就直接用了,安装挺简单记得需要一个序列号.在这里:http://mirrors.163.com/ubuntu-releases/15.04/u ...
- Ubuntu下使用Git和GitHub
刚刚学习git和github,网上的知识太杂太乱.照着折腾了很长的时间,都没有搞出个结果,心里十分痒痒,最后终于在github上看到成果.本文适合刚刚接触github但是急于想看到效果的同学,当然gi ...
- Ubuntu下安装Git以及Git帮助手册【转】
转自:http://milkythinking.com/blog/2011/04/17/install_git_and_manual/ Git简介 Git是一个分布式版本控制系统,对应的是SVN.CV ...
- 使用 GIT 获得Linux Kernel的代码并查看,追踪历史记录
Linux kernel 的官方 GIT地址是: http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git 可以从这个地 ...
- linux ubuntu下如何安装并且切换java版本(Unsupported major.minor version 52.0)
最近在做一个dcos(数据中心操作系统)的东西,需要用marathon来做进程管理.遗憾的是0.6版本的marathon在API方面很是缺少,换成了0.15版本之后,运行时提示“Unsupported ...
随机推荐
- JS中常见的兼容
1.阻止事件冒泡 e.stopPropagation() || e.cancelBubble function stopBubble(e){ if (e.cancelBubble) { e. ...
- 【知识强化】第四章 网络层 4.5 IPv6
这节课我们来学习一下IPv6. 首先呢我们来看一下为什么会有IPv6的产生.由于我们之前探讨过,对于IPv4这种编址方式呢,这个地址线已经被消耗殆尽了,已经没有剩多少地址.所以我们就学习了两种技术,一 ...
- Java高级应用(一)
下面来介绍一下Java的高级应用有哪些. Java高级应用 第一讲 类加载 (一).类加载 类加载器是一个特殊的类,负责在运行时寻找和加载类文件.Java允许使用不同的类加载器,甚至是自定义类加载器. ...
- Linux下的上传和下载yum install -y lrzsz
先使用命令 yum install -y lrzsz rz 上传 或者直接拖动 sz 要下的文件 回车
- datagrid+toolbar 不分页 显示
1 新建DataGrid.js文件 /*** * * *el: table id * ***/ function showDataGrid(el) { $(el).datagrid({ title: ...
- 给元素绑定 class
<div id="app04"> <label v-bind:class="{'Class1':Class1}">sasjadjagd& ...
- 20150127 学军集训 day1
day1 就直接考试... 和说好的不一样啊 第一题看都没怎么看就pass了,构造的题我一向没什么把握.然后瞟到第三题有30分可做,虽然要写的代码很大...反正我是写习惯了..期间纠结了一会还写了一个 ...
- Spring框架-经典的案例和demo,一些可以直接用于生产,使用atomikos来处理多数据源的一致性事务等
Spring Examples Demo website:http://www.ityouknow.com/ 对Spring框架的学习,包括一些经典的案例和demo,一些可以直接用于生产. sprin ...
- <自动化测试>之<使用unittest Python测试框架进行参数化测试>
最近在看视频时,虫师简单提到了简化自动化测试脚本用例中的代码量,而python中本身的参数化方法用来测试很糟糕,他在实际操作中使用了parameterized参数化... 有兴趣就查了下使用的方法,来 ...
- 生成函数小结——[ EGF ][ ln 的一个套路 ][ 概率生成函数 ]
看了jcvb的WC2015交流课件.虽然没懂后面的复合逆部分,但生成函数感觉受益良多. 指数生成函数 集合中大小为 i 的对象的权值是 \( a_i \) ,该集合的生成函数是 \( \sum\lim ...