`
welcomezhang
  • 浏览: 16860 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

git必备

阅读更多

 1.版本控制

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

 

1.1集中化

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



 

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

 

1.2分布式

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



 

 

2.git原理

 2.1理解代码的位置


 

通常情况下,在分布式版本控制中,代码存放在三个重要的位置:远程仓库(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种状态:



 

  • 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

  • 大小: 47.6 KB
  • 大小: 63.8 KB
  • 大小: 42.9 KB
  • 大小: 62.1 KB
分享到:
评论

相关推荐

    蒋鑫Git权威指南带书签高清完整版

    学习git必备,公认的git好书。你必将受益。学习git必备,公认的git好书。你必将受益。

    Pro Git》中文版.

    Pro Git》中文版. git一本比较全面的介绍了使用方法,学习GIT必备书籍

    progit-zh-v2.1.1.pdf

    深入学习git必备,比较全面的git介绍书籍,非常难找的书籍

    git最全笔记整理,git入门必备

    git最全笔记整理,git入门必备

    Git常用必备指令,新手小白必备

    Git是一种分布式版本控制系统,用于管理软件开发项目的源代码和版本控制。它是由林纳斯·托瓦兹(Linus Torvalds)于2005年开发的,最初是为了管理Linux内核的开发而创建的。Git具有以下特点: 1. 分布式管理:每个...

    GIt 工具包 jae必备

    JAE京东云引擎已经可以使用Git来上传管理代码文件了,但是官方的Git帮助文档真心不敢“恭维”——复制了一连串的“百科知识”,然后就……完了。对比一下百度BAE的Git操作教程——图文并茂,又生动形象,不得不想问...

    git 入门必备手册

    学习GIT手册,掌握GIT命令的使用,有备无患之经典.pdf

    Githack(Git泄露利用必备工具)

    当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。 GitHack是一个.git泄露利用测试脚本,通过泄露的文件,还原重建工程源代码...

    git学习手册

    之前用svn管理代码,现在公司启用git,刚开始用很不习惯,全靠这个学习手册学习上手,学习git必备。

    git中文版pdf

    详细的介绍了git命令及其用法原理,一本开发桌头必备的参考书。

    git入门级别教材

    学习git的直通车,git入门必备。

    git操作手册小白必备

    1.git介绍 是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件 2.特点 分布式相比于集中...

    软件测试工程师必备git命令(精选完整版pdf)

    软件测试工程师必备git命令(精选完整版pdf) 从业十年,针对软件测试工程师群体,整理的git命令完整版本 。 需要的自取

    Progit中文版

    Git教程progit的中文版,学习Git工具必备。本文档将网站 http://git.oschina.net/progit 的内容打包成chm,方便离线阅读。

    git手册 progit_v2.1.20.mobi

    git 入门必备,官方手册,mobi格式,可以手机、ipad阅读。

    pro_git_中文版本(Git使用教程)

    pro_git_中文版本(Git使用教程),团队远程协作代码合并,新手必备git使用指南

    深入浅出Git

    深入浅出Git中文版,想深入了解git的同学必备,里面详细说了git的对象模型

    Git-2.15.0.0-64-bit.exe及xgboost.dll,安装xgboost必备

    git客户端,安装xgboost等必备,Git-2.15.0.0-64-bit.exe及xgboost.dll

    Git常用操作命令收集

    Git常用操作命令收集.git学习查阅必备

    Git和Git-for-windows和汉化包

    Git和git-for-windows和汉化包,开发人员和公司必备的代码管理工具。

Global site tag (gtag.js) - Google Analytics