学习linux内核一段时间,意识到内核的版本需要严格控制。利用Git工具可以很轻松的完成不同开发人员不同模块之间的代码融合与版本控制 。
1. 首先,安装Git .可以参考廖雪峰的博客 https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
2. 然后 新建一个目录 mkdir my_git 新建本地git工程
root@ubuntu:# cd my_git
root@ubuntu:# git init
3.如果服务器上已经有了一个git工程 只需要把服务器端的工程拉下来就可以。
或者直接 git clone root@172.16.11.25:/media/iecu/lancelot/Rcar-H3-Git/
root@ubuntu:# git remote add origin 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)
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 <568684513@qq.com> Date: Tue Mar 20 18:26:25 2018 +0800
回到之前一个更新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
未完待续。。。。