Linux常用git命令使用心得
git是一个分布式版本控制软件,最初由林纳斯·托瓦兹创作,于2005年以GPL许可协议发布。最初目的是为了更好地管理Linux内核开发而设计。git是用于Linux内核开发的版本控制工具。与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。git的速度很快,这对于诸如Linux内核这样的大项目来说自然很重要。git最为出色的是它的合并追踪(merge tracing)能力。本文就git使用过程中的常用命令做一下简单的介绍
1、首先设定用户名和Email
git config --global user.name "nmy"
git config --global user.email "nmy@weathink.com"
git config --global --list
user.name=ken
user.email=ken@gmail.com
其中,--global指明user.name, user.email是全局变量。所谓全局变量,就是在你的PC上任何版本库这些变量是有效的。 user.name, user.email分别表示用户名与邮箱。我们可以通过--list列举出我们已经设置过的内容。需要说明的是,user.name, user.email是必须设置的,以后才知道是谁修改了项目。实际上git可设置的选项超过130个,只是大部分我们是不常用的。
2、git 输出颜色设定
git config --global color.ui "always"
git config --global --list
user.name=ken
user.email=ken@gmail.com
color.ui=always
如果发现使用git branch的时候显示出来的都是黑白色的话,说明颜色没有配置正确
请使用 git config --global color.ui "always" 命令即可
3、创建版本库
mkdir project
cd project/
git init
Initialized empty Git repository in /home/ken/project/.git/
上面的操作我们先创建了project目录,你的项目文件都存放在这个目录下。接着在目录执行:git init。OK。很简单,这时候会在/project/目录下生成一个.git目录,ls -a就可以看到。切换进去该目录,会看到一些文件和目录,主要用来存放版本库的元数据。
4、git add 和 git commit
对于内核源代码,由于.config没有包含在git中,因此需要
git add .config
然后此时通过make menuconfig修改.config 以及make,然后使用git status命令查看git目录下文件修改情况,此时可以看到很多中间.o文件修改过,会列出很多.o文件,比如
# modified: .config
# .config.old
# drivers/usb/core/.config.o.cmd
# drivers/usb/core/config.o
# include/config/
# kernel/.config_data.gz.cmd
# kernel/.config_data.h.cmd
# kernel/.configs.o.cmd
# kernel/configs.o
但是这些中间文件不是我们所需要的,如果我们确定要修改.config,此时我们需要提交.config
使用git commit -a -m "modifu config",此时会将所有在git中的所有add进去的文件提交,如果此时还有其他的文件的修改都会被提交。
此时输入命令
git log
会显示之前提交过的所有的信息
git log -1
会显示最近一条提交的信息
5、git branch
查看所有的分支
如下所示
root@desktop:~/pru-eight-suart-smard-card-20110912/pru-linux-drivers# git branch
* DIR
master
星号表示当前所在分支
如果需要删除某一个分支,则输入命令
git branch -D rrrr
增加branch命令
git branch sub_1 master
第三个参数是新的分支,第四个参数表示父分支,在这里我们的父分支是主分支master。所以这条命令就是在主分支master上创建一条新分支sub_1。
切换分支,比如
git checkout sub_1
6、git help
输入帮助命令
7、发布版本
git tag 1.0 sub_1
git tag
1.0
上面第一条指令中,第三个参数是标签,最后一个则是表示打标签的点;接下来呢,我们要做的最后一件事是为发布的版本做打包成一个tar或者zip包。命令git archive可以实现这个功能:
git archive --format=tar --prefix=helloworld-1.0/ 1.0 | gzip > helloworld-1.0.tar.gz
8、git checkout 到远程的branch
git branch -r
origin/DIR
origin/HEAD -> origin/master
origin/master
origin/pru-migration
origin/pru1-migration
origin/sc-driver-dev
origin/sc-driver-dev-pru1
origin/sc-test
origin/suart-driver-dev
然后git checkout origin/DIR 即可
9、git status -u normal 禁止输出那些没有添加的文件
10、安装gitk 图形界面,可以方便管理和查看git的分支和commit
apt-get install gitk
启动图形git界面
图一、gitk效果图
11、qgit图形界面,qgit是使用git开发的,效果更加好
apt-get install qgit
使用qgit的时候,在启动的时候可以勾选显示 All Branchs,此时可以显示出所有branch之间的切换,这个功能很好,相当于一个树形图
git ls-files 显示所有仓库中的文件。
git ls-files -m 显示修改过的文件。
git reset SHA1 回到SHA1对应的提交状态。
图二、qgit效果图
10、删除git add中的文件
如果之前操作过git add 123
git rm -f 123 在git仓库中删除123,以及删除123这个文件
或者git rm --cached 123 在git仓库中删除123,不直接删除文件
如果删除所有类型文件可以
git rm --cached -r *.txt
维芯科推出的Linux核心板,都使用的是git管理代码和项目分支,比如:
瑞萨G2L核心板:https://www.weathink.cn/products/hexinban/4.html
TI AM62x核心板:https://www.weathink.cn/products/hexinban/11.html