Linux创建git工程及git仓库
2015-01-26 19:33
260 查看
如需转载请注明出处!
最近在做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 <file>..." 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 <deric@ximalaya.com>
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索引来控制代码回退的版本,从而简化代码的维护操作。
最近在做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 <file>..." 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 <deric@ximalaya.com>
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索引来控制代码回退的版本,从而简化代码的维护操作。
相关文章推荐
- 为已有的XCode工程创建Git仓库
- Linux中使用京东代码库JDCode创建私有Git仓库
- 如何在Linux下使用Gitblit工具创建Git仓库服务
- [Cocoa]为已有的XCode工程创建Git仓库
- 如何在Linux下使用Gitblit工具创建Git仓库服务
- linux下git仓库的创建
- 在Linux系统中使用Gitblit工具创建Git仓库的方法
- 如何创建Android Studio工程的git本地仓库——初级篇
- Linux学习(4)之在Linux系统下安装Git,创建Git仓库
- 如何在Linux下使用Gitblit工具创建Git仓库服务
- 如何在Linux下使用Gitblit工具创建Git仓库服务
- 如何在Linux下使用Gitblit工具创建Git仓库服务
- [Cocoa]为已有的 XCode 工程创建 Git 仓库
- 工程linux下创建svn仓库目录结构
- Tortoisegit+BitBucket创建私有代码托管仓库
- git创建一个新的仓库(共享库)
- Git 历险记(三)——创建一个自己的本地仓库
- git 创建远程仓库
- google code 代码托管 用git创建仓库
- git实验之创建仓库