`
welcomezhang
  • 浏览: 17808 次
  • 性别: 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
分享到:
评论

相关推荐

    progit-zh-v2.1.1.pdf

    Git是一种分布式的版本控制系统,它...整体来看,这本书是学习Git必备的全面指南,涵盖了从基础到高级的各种Git用法,同时特别关注了GitHub这一重要平台,为希望掌握现代版本控制技能的开发者提供了宝贵的知识和技巧。

    git 入门必备手册

    Git是一款目前广泛使用的版本控制系统,它主要用于管理软件开发过程中的代码版本。学习Git,可以帮助我们更有效地进行代码版本控制,提高开发效率。 Git的起源: Git最初由Linux的创始人Linus Torvalds在2005年创建...

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

    ### Git 最全笔记整理——Git 入门必备 #### 一、Git 是什么? Git 是一种分布式版本控制系统,主要用于跟踪计算机文件的更改,并协调多个用户之间的协作。它最初由 Linus Torvalds 在 2005 年为了更好地管理 ...

    windows64位git安装包

    总之,Git是开发者必备的工具,它强大的版本控制功能可以帮助团队有效地管理代码,跟踪变更,解决冲突,并确保代码的安全。通过下载官方的Windows 64位Git安装包,用户可以快速地在Windows环境中搭建Git工作环境,...

    Git的客户端+服务端Gitblit+Git clone

    Git是一种分布式版本控制系统,它允许开发人员协作管理代码库,跟踪文件和目录的变化...掌握Git的客户端和服务端操作,以及如何通过`git clone`命令获取和同步远程仓库,对于任何参与软件开发的人员来说都是必备技能。

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

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

    GIt 工具包 jae必备

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

    配置git配置git配置git配置git.zip

    总之,配置和使用Git是每个开发者必备的技能,而RT-Thread Studio的内置Git插件为STM开发提供了便利。通过学习和掌握Git,不仅可以提升个人工作效率,还能更好地协同团队,确保项目的顺利进行。

    Git(Git-2.36.1-64-bit.exe)

    Git是世界上最流行的分布式版本控制系统,它由Linus Torvalds为Linux内核开发而创建,如今已被广泛应用于各种软件开发项目。Git-2.36.1-64-bit.exe是...无论是新手还是经验丰富的开发者,Git都是管理源代码的必备工具。

    Git详解_Git详解

    了解和熟练使用Git是现代软件开发者的必备技能。通过实践和学习,你可以掌握Git的强大功能,提高团队协作效率,确保代码的安全和版本控制。在实际项目中,理解Git的工作流程、合理使用分支策略(如Git Flow或GitHub ...

    Git 官方原版 Git-2.34.1 32&64-bit 2022-07-12 Latest

    Git是世界上最流行的分布式版本控制系统,它允许开发人员...无论是个人项目还是团队协作,掌握Git的基本操作和高级特性都是每个开发者必备的技能。定期更新到最新版本,不仅可以利用新功能,还能确保安全性和兼容性。

    Git2.18 For Windows x64

    总之,Git 2.18 for Windows x64是开发者必备的工具之一,无论你是初学者还是资深开发者,都能从中受益。通过下载这个压缩包,你可以快速获取到Git的最新版本,节省下载时间,提高工作效率。在使用过程中,不断探索...

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

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

    git(git+管理工具+密钥)

    Git是世界上最流行的分布式版本控制系统,它为软件开发...了解并熟练掌握Git的使用,设置和管理SSH密钥,是现代软件开发者的必备技能。通过持续学习和实践,开发者可以充分利用Git的强大功能,提高项目的质量和效率。

    CentOS7安装Git

    在CentOS 7环境中安装Git是许多开发人员和系统管理员的必备技能之一。通过本文档,我们将详细介绍如何在CentOS 7系统上安装Git,包括从下载源码包到完成安装的整个过程,并对关键步骤进行深入解析。 #### 二、准备...

    git入门级别教材

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

    全栈必备——Git

    本章介绍开始使用Git前的相关知识。我们会先了解一些版本控制工具的历史背景,然后试着让Git在你的系统上跑起来,直到最后配置好,可以正常开始开发工作。读完本章,你就会明白为什么Git会如此流行,为什么你应该...

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

    Git 是一款分布式版本控制系统,对于软件测试工程师而言,掌握 Git 命令是必不可少的技能。这份资料提供了软件测试工程师需要了解和使用的 Git 命令的精选完整版,旨在帮助测试工程师提升日常工作中与代码版本控制...

    git操作手册小白必备

    Git是开源的分布式版本控制系统,由Linux内核的创造者Linus Torvalds设计,用于高效地处理从小到大的项目版本管理。Git的核心优势之一是它的分布式特性,开发者可以在本地进行提交,无需直接连接到中央服务器。每个...

Global site tag (gtag.js) - Google Analytics