Git 学习

版本控制系统的演变:
本地控制系统---集中控制系统---分布式的控制系统(git)
git的兴起时源于linux内核开源项目,,
到了2002年,整个项目组开始启用分布式版本控制系统bitkeeper来管理和维护代码
到了2005年,开发BitKeeper的商业公司同Linux内核开源社区的合作关系借宿,收回了免费的使用BitKeeper的权利,这就迫使Linux开源社区不得不吸取教训,自己开发一套属于自己的版本控制系统,不至于重蹈覆辙。

Git是直接记录文件快照,而非比较差异;
git 可以使用git -config对git进行配置。
通过git config --list 对文件检查已有的配置信息。

从远端仓库中克隆一个到本地使用的命令为: git clone https://github.com/CrazyWang/TCP-IP.git

git 中默认的分支就是master

讲一个现有的目录,或者项目使用git 来进行版本控制,在只需要在当前目录下使用git init即可,这样会初始化一个.git 文件,这个文件就将管理和控制该项目。但是初始化完了后不会默认跟踪项目下的文件,需要手动去添加要跟踪的文件。

git add 的功能是把文件放入暂存区,,不管是不是被跟踪,如果从未被跟踪,则使用git add后,文件被跟踪,同时将文件放入暂存区。如果是一个已经被跟踪的文件,使用git add后,文件同样会被放入暂存区中,等待提交,查看git 项目下文件的状态是使用; git status。

使用.gitignore 文件,,可以忽略某些文件的跟踪,以至于对那些修改后不想被跟踪的文件,可以通过.gitignore 实现,具体使用,以#开头表示注释,支持简单的正则表达式。如; *.tmp 忽略以tmp结尾的文件,如果是*.[ao],表示忽略以.a和.o结尾的文件。但是在编写.gitignore 文件时,要写上.gitignore 这样就不会跟踪自己的文件了,但是建议跟踪.gitignore 文件,因为linux社区上都存在!

每次在提交的时候使用git status 来查看一下文件的状态,然后再选择git commit对文件进行提交。

git 每次提交的时候是将存储在git 暂存区的文件快照commit ,但是这样用起来有点不是很方便,所有在使用git commit 的时候可以加上-a 的参数完成把跟踪的文件暂存起来一并提交!---》跳过使用暂存区域!

使用git log 可以查看每次更新的说明,如果要得到每次更新的详细内容就可以使用git log -p , 如果要产看最近两次更新的详细内容就可以使用-2参数--》 git log -p -2参数。

要从Git中移除某个文件,就必须要从已被跟踪的文件清单中移除(确切地说,是从暂存区域移除),然后提交,可以使用git rm 命令完成,并且这个连带是把工作区域的文件也删掉。git rm test.c,,如果删除之前修改过并且已经存放到暂存区域的话,则必须要使用强制删除选项-f ,

但是还存在一种情况,如果想把文件从Git仓库中删除,但是仍然希望保留当前工作目录中,然后在忽略文件中添加上对其的忽略,这时候可以使用git rm --cached 文件名 实现。

用git fetch [remote-name] 来从远程仓库中抓取数据(主要是用于同步别人的更新),但是抓取回来的数据不会自动合并,需要手工的合并,如果设置了某个分支用于跟踪某个远端仓库的分支,可以使用git pull 命令自动抓取数据下来,然后将远端分支自动合并到本地仓库中的当前分支。


推送到远端仓库:git push [remote-name] [branch-name] git push origin master

使用git remote show [remote-name] 来查看某个远程仓库的详细信息,比如要看所克隆的origin 仓库可以使用,
git remote show origin

新建一个分支:
git branch testing,,,新建一个testing分支。
但是这样建立的分支,head并不会自动切换到head上,所以需要手动切换,git checkout testing 则将head切换到testing上。

要新建并且切换到该分支上则使用 git checkout -b 分支名 即可!

 

 

 

 

posted @ 2013-10-04 16:40  wangmin  阅读(137)  评论(0)    收藏  举报