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界面

1734149740242806.jpg

图一、gitk效果图


11、qgit图形界面,qgit是使用git开发的,效果更加好

apt-get install qgit

使用qgit的时候,在启动的时候可以勾选显示 All Branchs,此时可以显示出所有branch之间的切换,这个功能很好,相当于一个树形图


git ls-files            显示所有仓库中的文件。  

git ls-files -m         显示修改过的文件。

git reset SHA1          回到SHA1对应的提交状态。

1734149764896735.jpg

图二、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



Tags: Array