linux创建git详细讲解,Linux创建git工程及git仓库

如需转载请注明出处!

最近在做ffmpeg相关工程,写了个播放解码demo。从最开始的解码本地文件,到逐步完善模拟seek操作、buffer缓冲机制、HLS网络流播放、HLS本地文件仿真模拟。最开始每添加一个功能项时,都要首先对当前源码进行备份。有些功能模块相对复杂,而且分散嵌入到之前的base code中。这样在一些难以追踪的bug出现时,为了节省时间又要终止当前文件的修改,切回到备份的code上。而且在某些时候忘记备份的话,一旦有复杂的错误发生,将会非常麻烦。为了解决上述的问题,在Linux下运用git进行代码的维护。

下面给出创建git工程及git 本地仓库过程:

deric@deric-virtual-machine:~/develop$ mkdir ffmpeg_proj

deric@deric-virtual-machine:~/develop$ cd ffmpeg_proj/

deric@deric-virtual-machine:~/develop/ffmpeg_proj$ mkdir ffmpeg_src

deric@deric-virtual-machine:~/develop/ffmpeg_proj$ cd ffmpeg_src/

将代码文件放在目录ffmpeg_src下

deric@deric-virtual-machine:~/develop/ffmpeg_proj/ffmpeg_src$ git init

Initialized empty Git repository in /home/deric/develop/ffmpeg_proj/ffmpeg_src/.git/

此时查看当前目录下的文件组织:

deric@deric-virtual-machine:~/develop/ffmpeg_proj/ffmpeg_src$ ls -a

.  ..  .git  main.c

可见,在当前目录下,除了源码文件main.c外,生成了.git目录

接下来,将当前目录的源码文件加入到git索引中:

deric@deric-virtual-machine:~/develop/ffmpeg_proj/ffmpeg_src$ git add .

deric@deric-virtual-machine:~/develop/ffmpeg_proj/ffmpeg_src$ git status

On branch master

Initial commit

Changes to be committed:

(use "git rm --cached ..." to unstage)

new file:   main.c

deric@deric-virtual-machine:~/develop/ffmpeg_proj/ffmpeg_src$ git commit -m "git test"

[master (root-commit) 59d6551] git test

1 file changed, 1 insertion(+)

create mode 100644 main.c

接下来我们查看git日志信息:

deric@deric-virtual-machine:~/develop/ffmpeg_proj/ffmpeg_src$ git log

commit 59d655132bb9f5ca060b6718f8fff111cb59d72d

Author: deric

Date:   Sat Jan 24 03:10:02 2015 +0800

git test

可见,日志信息中出现了刚才的commit信息。

接下来,我们在本地尝试创建git 代码仓库:

deric@deric-virtual-machine:~/develop/ffmpeg_proj/ffmpeg_src$ cd ../

deric@deric-virtual-machine:~/develop/ffmpeg_proj$ mkdir ffmpeg_repos

deric@deric-virtual-machine:~/develop/ffmpeg_proj$ cd ffmpeg_repos/

deric@deric-virtual-machine:~/develop/ffmpeg_proj/ffmpeg_repos$ git clone --bare ../ffmpeg_src/ Cloning into bare repository 'ffmpeg_src.git'... done. deric@deric-virtual-machine:~/develop/ffmpeg_proj/ffmpeg_repos$ ls -a .  ..  ffmpeg_src.git 下面我们删除ffmpeg_src目录,尝试从代码仓库恢复ffmpeg源码: deric@deric-virtual-machine:~/develop/ffmpeg_proj/ffmpeg_repos$ cd ../ deric@deric-virtual-machine:~/develop/ffmpeg_proj$ ls ffmpeg_repos  ffmpeg_src deric@deric-virtual-machine:~/develop/ffmpeg_proj$ rm -r ffmpeg_src/ rm: remove write-protected regular file ‘ffmpeg_src/.git/objects/5f/ba58a4bc040acd219cf348f28e67950eeef16e’? ^C deric@deric-virtual-machine:~/develop/ffmpeg_proj$ sudo rm -rf ffmpeg_src/ [sudo] password for deric:  deric@deric-virtual-machine:~/develop/ffmpeg_proj$ ls -a .  ..  ffmpeg_repos 然后通过git clone从代码仓库ffmpeg_repos中恢复 ffmpeg_src源码及git工程: deric@deric-virtual-machine:~/develop/ffmpeg_proj$ git clone ffmpeg_repos/ffmpeg_src.git/ Cloning into 'ffmpeg_src'... done. deric@deric-virtual-machine:~/develop/ffmpeg_proj$ ls -a .  ..  ffmpeg_repos  ffmpeg_src deric@deric-virtual-machine:~/develop/ffmpeg_proj$ ls ffmpeg_src/ -a .  ..  .git  main.c 由结果可见,ffmpeg_src  git工程及源码文件得到正确恢复。在后续功能模块添加时,可以通过git log索引来控制代码回退的版本,从而简化代码的维护操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值