当前位置:操作系统 > 安卓/Android >>

Android学习笔记Android必备开发工具之一命令行创建Git库(Dean)

在前面一篇文件简述了一个标准流程的基本Git的操作!现在我尝试自己建立git库并操作文件将git命令的使用进行分析!采用SSH方式让局域网的同学们可以访问并且push和clone!

首先要安装的几个工具包:
Java代码 
git工具包 
sudo apt-get install git-core   
一个图形操作界面的git工具 
sudo apt-get install gitk 
局域网访问个哦你觉包ssh 
sudo apt-get install ssh 


注意了!开始搭建了!
先创建一个workspaces文件夹
Java代码 
deanye@dean:~$ mkdir workspaces 
deanye@dean:~$ cd workspaces 

\
 


将此文件夹作为版本库
Java代码 
deanye@dean:~/workspaces$ git init 
Initialized empty Git repository in /home/deanye/workspaces/.git/ 

\
 
Java代码 
HEAD代表当前最新状态。 
tag为某个状态的标签。 
SHA1为每个提交日志的唯一标识。 
开发人员需要为git仓库配置相关信息,这样在提交代码时,这些信息会自动 
反映在git仓库的日志中。 
  
git config user.name "your name" 
git config user.email yourname@email_server 
git config core.editor vim 
git config core.paper "less -N" 
git config color.diff true 
git config alias.co checkout 

 

这样,一个空的版本库就创建好了,并在当前目录中创建一个叫 .git 的子目录。你可以用 ls -a 查看一下,并请注意其中的三项内容:
  * 一个叫 HEAD 的文件,我们现在来查看一下它的内容:
  $ cat .git/HEAD
  现在 HEAD 的内容应该是这样:
  ref: refs/heads/master
  我们可以看到,HEAD 文件中的内容其实只是包含了一个索引信息,并且,这个索引将总是指向你的项目中的当前开发分支。
  * 一个叫 objects 的子目录,它包含了你的项目中的所有对象,我们不必直接地了解到这些对象内容,我们应该关心是存放在这些对象中的项目的数据。
  Note
  关于 git 对象的分类,以及 git 对象数据库的说明,请参看 [Discussion]
  * 一个叫 refs 的子目录,它用来保存指向对象的索引。
  具体地说,子目录 refs 包含着两个子目录叫 heads 和 tags,就像他们的名字所表达的意味一样:他们存放了不同的开发分支的头的索引, 或者是你用来标定版本的标签的索引。
  请注意:master 是默认的分支,这也是为什么 .git/HEAD 创建的时候就指向 master 的原因,尽管目前它其实并不存在。 git 将假设你会在 master 上开始并展开你以后的工作,除非你自己创建你自己的分支。
  另外,这只是一个约定俗成的习惯而已,实际上你可以将你的工作分支叫任何名字,而不必在版本库中一定要有一个叫 master 的分支,尽管很多 git 工具都认为 master 分支是存在的。
  现在已经创建好了一个 git 版本库,但是它是空的,还不能做任何事情,下一步就是怎么向版本库植入数据了。

新建几个文件和文件夹
Java代码 
deanye@dean:~/workspaces$ mkdir text_a 
deanye@dean:~/workspaces$ mkdir text_b 
deanye@dean:~/workspaces$ ls 
text_a  text_b 
deanye@dean:~/workspaces$ echo "abc">>text_c 
deanye@dean:~/workspaces$ echo "abcd">>text_d 
deanye@dean:~/workspaces$ ls 
text_a  text_b  text_c  text_d 
deanye@dean:~/workspaces$  

 \

 


查看当前的状态
Java代码 
deanye@dean:~/workspaces$ git status 

 \

 
Java代码 
diff: 
  
开发人员在本地进行开发后,可以使用git diff查看改动。 
除了直接比较当前开发后的改动外,git diff还可以: 
  
git diff tag                    比较tag和HEAD之间的不同。 
git diff tag file               比较一个文件在两者之间的不同。 
git diff tag1..tag2             比较两个tag之间的不同。 
git diff SHA11..SHA12           比较两个提交之间的不同。 
git diff tag1 tag2 file or 
git diff tag1:file tag2:file    比较一个文件在两个tag之间的不同。 


这个时候可以案件刚才添加的两个文本文件的状态!文件夹为空所以无法看到

可以添加一个修改text_c到默认的branch master 然后在次查看状态
Java代码 
deanye@dean:~/workspaces$ git add text_c 

\
 


git add 实际上是个脚本命令,它是对 git 内核命令 git update-index 的调用。因此上面的命令和下面的命令其实是等价的:
  $ git update-index --add text_c
  如果你要将某个文件从 git 的目录跟踪系统中清除出去,同样可以用 git update-index 命令。例如:
  $ git update-index --force-remove text_c

也可以全部添加当期的改动文件(注意此时并为提交到branch)
Java代码 
deanye@dean:~/workspaces$ git add . 

 \

 


通过 git commit 命令来提交:
Java代码 
deanye@dean:~/workspaces$ git commit -m "first commit" 

 \

 


查看历史修改
Java代码 
deanye@dean:~/workspaces$ git log 

 \

 

Java代码 
log: 
  
git log file                    查看一个文件的改动。 
git log -p                      查看日志和改动。 
git log tag1..tag2              查看两个tag之间的日志。 
git log -p tag1..tag2 file      查看一个文件在两个tag之间的不同。 
git log tag..                   查看tag和HEAD之间的不同。 
  


修改两个文件并且查看修改文件diff
Java代码 
deanye@dean:~/workspaces$ git diff . 


 \


我们可以再次使用组合命令 git add 和 git commit 将我们的工作提交到版本库中
Java代码 
deanye@dean:~/workspaces$ git add . 
deanye@dean:~/workspaces$ git commit -m "second" 

\
 

或者直接
Java代码 
git commit -a -m "second" 

Java代码 
commit: 
  
git commit -a -e      

补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,