git必备

阅读更多

 1.版本控制

 版本控制(Version Control System)目前主要分两大流派。

 

1.1集中化

集中化的版本控制系统( Centralized Version Control Systems,简称 CVCS )代表产品有cvs、Subversion等。它们都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。


git必备_第1张图片
 

其中,最明显的缺点是中央服务器的单点故障

 

1.2分布式

 分布式版本控制系统( Distributed Version Control System,简称 DVCS )代表产品有Git,Mercurial等,客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜 像出来的本地仓库恢复。


git必备_第2张图片
 

 

2.git原理

 2.1理解代码的位置


git必备_第3张图片

 

通常情况下,在分布式版本控制中,代码存放在三个重要的位置:远程仓库(Remote)、本地仓库(Local)和当前工作空间(workspace)。

 暂存区(index)本质是个数据结构,维护指向不同的文件版本的索引,只有在该空间建立索引,才能跟踪文件的状态,一般都放在 Git 目录中。

zhangweikuang@xb:~/code/ahc$ ls  .git
COMMIT_EDITMSG	ORIG_HEAD	description	info		packed-refs
FETCH_HEAD	branches	hooks		logs		refs
HEAD		config		index		objects

 

 

2.2理解git文件状态

对应的,git文件有4种状态:


git必备_第4张图片
 

  • Untracked状态: 未跟踪。 通过*git add*,*git commit*可将它置入跟踪状态。
  • Unmodified:已经在库中,未修改,即版本库中的文件快照内容与文件夹中完全一致。这种类型的文件有两个去处,如果它被修改,而成为modified;如果使用*git rm*移出版本库,则成为untracked文件。
  • Modified状态: 文件已修改,仅仅是修改,并没有进行其它操作。这个文件也有两个去处,通过 git add 可进入暂存(staged)状态,使用 git checkout -- fileName 则丢弃修改,返因到unmodify状态。这个checkout很好理解,就是取出库中文件,覆盖当前文件。
  • Staged状态:暂存状态,有的资料里叫index状态,即为指定文件建立版本跟踪(索引)信息。执行 *git commit 则将修改同步到库中,这时库中的文件与本地文件又一致了,于是文件是unmodify状态。执行 git reset HEAD filename 取消暂存(其实质是用仓库中某个版本库的fileneme覆盖当前Staged内的同名filename文件),文件状态变为modified。

 

 

3.git 最常用命令

3.1正常流程

几个人协调完成一次需求的开发,最常用命令如下:

 

1.下载代码

git clone git://github.com/xxx/xxx.git

 

2.切换分支

git checkout -b branchName

 

导入ide进行开发

 

3.查看修改

git status

 

 

4.提交到暂存区(index)

git add xxx
git add -A

 

 

5.提交到本地仓库(Local Repository)

git commit -m '修改备注内容'

 

6.提交到远程仓库

先更新:git pull origin branchName
再提交:git push origin branchName

 

 

3.2注意点

以上的流程是比较顺利的流程,下面再提几个注意点:

1.步骤4和5可以合并,简化为

git commit -a -m '修改备注内容'

 

2.提交改动时,忽略某些文件

给一个示例,需要手动编辑.gitignore文件

zhangweikuang@xb:~/code/moon$ cat .gitignore
# Java class files
*.class

# Eclipse project files
.classpath
.project

# Intellij project files
*.iml
*.ipr
*.iws
.idea/

# War
target/

 

3.步骤5如果不想提交,可以移除部分文件

git rm xxx

 

4.查看提交历史

git log

 

5.取消已暂存的文件

git reset HEAD yyy

 

note:

以上只是给出了个人在使用git过程中常用的一些命令。

 

 

4.参考资料

Git详解之一 Git起步 - http://www.open-open.com/lib/view/open1328069609436.html

  • git必备_第5张图片
  • 大小: 47.6 KB
  • git必备_第6张图片
  • 大小: 63.8 KB
  • git必备_第7张图片
  • 大小: 42.9 KB
  • git必备_第8张图片
  • 大小: 62.1 KB
  • 查看图片附件

你可能感兴趣的:(git,原理,常用命令)