Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 950|回复: 0

开发交流:Android 创建Git库

[复制链接]

该用户从未签到

发表于 2011-10-24 09:35:54 | 显示全部楼层 |阅读模式
    现在我尝试自己建立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代码: /*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代码: 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代码: //git add 实际上是个脚本命令,它是对 git 内核命令 git update-index 的调用。因此上面的命令和下面的命令其实是等价的:



$ git update-index --add text_c



//如果你要将某个文件从 git 的目录跟踪系统中清除出去,同样可以用 git update-index 命令。例如:



$ git update-index --force-remove text_c



//也可以全部添加当期的改动文件(注意此时并为提交到branch)
复制代码我们可以在每一个不同分支上做自己的修改!  也就是有多种不同的工程环境!
  合并两个分支:git merge
  Java代码
  $ git checkout master
  $ git merge -m "Merge" second
  合并两个分支,还有一个更简便的方式,下面的命令和上面的命令是等价的
  Java代码
  $ git checkout master
  $ git pull . second
  但是,此时 git 会出现合并冲突提示:$ cat text_c然后解决冲突
  还有更复杂的三路合并和多内容树合并的情况。详情可参看: git help read-tree, git help merge 等文档。
  逆转与恢复
  逆转与恢复:git reset
  项目跟踪工具的一个重要任务之一,就是使我们能够随时逆转(Undo)和恢复(Redo)某一阶段的工作。
  git reset 命令就是为这样的任务准备的。它将当前的工作分支的 头 定位到以前提交的任何版本中,它有三个重置的算法选项。
  命令形式:
  git reset [--mixed | --soft | --hard] []
  命令的选项:
  --mixed
  仅是重置索引的位置,而不改变你的工作树中的任何东西(即,文件中的所有变化都会被保留,也不标记他们为待提交状态),并且提示什么内容还没有被更新了。这个是默认的选项。
  --soft
  既不触动索引的位置,也不改变工作树中的任何内容,我们只是要求这些内容成为一份好的内容(之后才成为真正的提交内容)。这个选项使你可以将已经提交的东西重新逆转至“已更新但未提交(Updated but not Check in)”的状态。就像已经执行过 git update-index 命令,但是还没有执行 git commit 命令一样。
  --hard
  将工作树中的内容和头索引都切换至指定的版本位置中,也就是说自 之后的所有的跟踪内容和工作树中的内容都会全部丢失。因此,这个选项要慎用,除非你已经非常确定你的确不想再看到那些东西了。
  一个重要技巧--逆转提交与恢复
回复

使用道具 举报

该用户从未签到

发表于 2012-3-15 19:51:55 | 显示全部楼层
很好很强大
回复 支持 反对

使用道具 举报

头像被屏蔽

该用户从未签到

发表于 2012-4-25 15:38:35 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-12 01:07 , Processed in 0.348845 second(s), 36 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表