Git使用教程总结

第一篇:SVN VS GIT

svn :集中式;中央版本控制,n个版本 联网(局域网)同步

git :分布式;没有中央的概念,每个人的电脑上都是一个完整的版本库。客户端每次提交代码,并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。即每一次的克隆操作,实际上都是一次对代码仓库的完整备份。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。

第二篇:Git必知

1、Git三种状态

Git 有三种状态,你的文件可能处于其中之一:已提交(committed)、已修改(modified)和已暂存(staged)。

已提交:表示数据已经安全的保存在本地数据库中。

已修改:表示修改了文件,但还没保存到数据库中。

已暂存:表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

2、Git三个工作区

Git 项目的三个工作区域的概念:Git 仓库、工作目录以及暂存区域


仓库目录:

是Git 用来保存项目的元数据和对象数据库的地方。 这是 Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。

工作目录:

是对项目的某个版本独立提取出来的内容。这些从Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。

暂存区域:

是一个文件,保存了下次将提交的文件列表信息,一般在Git 仓库目录中。 有时候也被称作‘索引’,不过一般说法还是叫暂存区域。

3、基本的Git 工作流程如下:

在工作目录中修改文件。

暂存文件,将文件的快照放入暂存区域。

提交更新,找到暂存区域的文件,将快照永久性存储到Git 仓库目录。

如果Git 目录中保存着的特定版本文件,就属于已提交状态。 如果作了修改并已放入暂存区域,就属于已暂存状态。 如果自上次取出后,作了修改但还没有放到暂存区域,就是已修改状态。

第三篇:Git从创建到发布操作总结

一、git clone

   Git 克隆的是该 Git 仓库服务器上的几乎所有数据,而不是仅仅复制完成你的工作所需要文件。 当你执行 git clone 命令的时候,默认配置下远程 Git 仓库中的每一个文件的每一个版本都将被拉取下来。如果服务器的磁盘坏掉了,通常可以使用任何一个克隆下来的用户端来重建服务器上的仓库。

git clone [url]

1、 git clone http://git.oschina.net/yiibai/git-start.git

   这会在当前目录下创建一个名为“git-start.git” 的目录,并在这个目录下初始化一个 .git 文件夹,从远程仓库拉取下所有数据放入 .git 文件夹,然后从中读取最新版本的文件的拷贝.

2、git clone http://git.oschina.net/yiibai/git-start.git mygit-start

    执行与上一个命令相同的操作,不过在本地创建的仓库名字变为mygit-start

二、git init

   如果不克隆现有的仓库,而是打算使用Git 来对现有的项目进行管理。假设有一个项目的目录是:D:\worksp\git_sample,只需要进入该项目的目录并输入:

1、$ git init

   该命令将创建一个名为.git 的子目录,这个子目录含有初始化的 Git 仓库中所有的必须文件,这些文件是 Git 仓库的骨干。 但是,在这个时候,我们仅仅是做了一个初始化的操作,项目里的文件还没有被跟踪。

2、git add ,git commit

   如果是在一个已经存在文件的文件夹(而不是空文件夹)中初始化 Git 仓库来进行版本控制的话,应该开始跟踪这些文件并提交。可通过 git add 命令来实现对指定文件的跟踪,然后执行 git commit 提交

三、修改、提交相关

   现在我们手上有了一个真实项目的Git 仓库(如上面 clone 下来的 git-start.git),并从这个仓库中取出了所有文件的工作拷贝。 接下来,对这些文件做些修改,在完成了一个阶段的目标之后,提交本次更新到仓库。

工作目录下的每一个文件都不外乎这两种状态:已跟踪或未跟踪。

1、已跟踪

   已跟踪的文件是指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后,它们的状态可能处于未修改,已修改或已放入暂存区。初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态。编辑过某些文件之后,由于自上次提交后你对它们做了修改,Git 将它们标记为已修改文件。 我们逐步将这些修改过的文件放入暂存区,然后提交所有暂存了的修改,如此反复。

2、未跟踪

   工作目录中除已跟踪文件以外的所有其它文件都属于未跟踪文件,它们既不存在于上次快照的记录中,也没有放入暂存区。


1、git status

   在工作目录中执行git status,

   项目1 中无修改文件需要提交,执行结果如下。(该命令还显示了当前所在分支,并告诉你这个分支同远程服务器上对应的分支没有偏离)


   项目2中有较多文件被修改但尚未提交,执行结果如下。


   如果在项目中新建文件,执行结果如下:

   提示,新建的doc文件未跟踪,意味着 Git 在之前的快照(提交)中没有这些文件;Git 不会自动将之纳入跟踪范围。这时需要执行git add 操作,开始跟踪该文件。

2、git add

git add mytext.txt

使用命令git add 开始跟踪一个文件。此时在执行git status ,则提示

只要在Changes to be committed 这行下面的,就说明是已暂存状态。

但是注意:运行git add之后修改文件,再执行git status,提示修改 not staged 未暂存。此时需要重新运行 git add 把最新版本重新暂存起来。再进行git commit操作。

3、git commit -m

最后可执行commit操作,将新增文件留存在历史记录中。

现在的暂存区域已经准备妥当可以提交了。在此之前,请一定要确认还有什么修改过的或新建的文件还没有git add 过,否则提交的时候不会记录这些还没暂存起来的变化。 这些修改过的文件只保留在本地磁盘。 所以,每次准备提交前,先用 git status 看下,是不是都已暂存起来了,如果没有暂存起来则要先使用命令:git add .将所有文件暂存起来, 然后再运行提交命令 git commit

注意提示添加本次commit说明:


也可以在commit 命令后添加 -m 选项,将提交信息与命令放在同一行

git commit -m "this is my commit info note."

4、git commit -a

给git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤

git commit -a -m 'added new benchmarks'

5、git rm

要从Git 中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从暂存区域移除),然后提交。 可以用 git rm 命令完成此项工作,并连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中了。下一次提交时,该文件就不再纳入版本管理了。

如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项-f(注:即 force 的首字母)。 这是一种安全特性,用于防止误删还没有添加到快照的数据,这样的数据不能被 Git 恢复。

第四篇:Git忽略文件操作

一般我们总会有些文件无需纳入Git 的管理,也不希望它们总出现在未跟踪文件列表.此时我们可以创建一个名为.gitignore 的文件,列出要忽略的文件后缀,使用cat .gitignore进行查看。

在git bash中输入touch .gitignore 即可生成。

提示:GitHub 有一个十分详细的针对数十种项目及编程语言的 .gitignore 文件列表,http://github.com/github/gitignore

第五篇:远程仓库及常用操作

git remote add  添加一个新的远程 Git 仓库

git fetch gs 拉取仓库中有但你没有的信息(从远程仓库中获得数据),这个命令会访问远程仓库,从中拉取所有还没有的数据。必须注意 git fetch 命令会将数据拉取到本地仓库 - 它并不会自动合并或修改当前的工作

git pull 自动的抓取然后合并远程分支到当前分支。

git push [remote-name] [branch-name] 推送到远程仓库

只有当你有所克隆服务器的写入权限,并且之前没有人推送过时,这条命令才能生效。当你和其他人在同一时间克隆,他们先推送到上游然后你再推送到上游,你的推送就会毫无疑问地被拒绝。你必须先将他们的工作拉取[fetch]下来并将其合并[merge]进你的工作后才能推送。



猜你喜欢

转载自blog.csdn.net/daybreak1209/article/details/78216798