git 学习


                                              git学习笔记                                                        

                                                                  作者:孤独草原狼

 

Git简介:

git是一种分布式版本控制系统,相比于集中式版本控制系统有很多优点。Git的很多操作都可以离线进行,不需要网络就可以工作,等把所有的文档更改了,可以再一次性提交。而其他集中式的必须要网络的支持才能工作。

集中式版本控制系统:都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。但是这样的VCS有很大的缺点,比如中央服务器故障了,那么用户就无法提交更新,无法工作了。而且如果磁盘没有及时备份的话会造成数据的丢失,损失是惨重的。

分布式版本控制系统:弥补了这种缺点,客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。

 

任何一个文件在git内的三种状态:committed,modified, staged

 

一些常用的命令(掌握了以下命令,基本上可以完成日常常用的操作了)

 

git init           创建本地仓库

/**  git配置工具 git config   **/

专门用来配置或读取相应的工作环境变量,这些变量可以存放在以下三个不同的地方:

/etc/gitconfig文件:系统中对所有用户都普遍适用的配置。若使用git config
--system选项,读写的就是这个文件。
~/.gitconfig文件:用户目录下的配置文件只适用于该用户。若使用git config
用--global 选项,读写的就是这个文件。
• 当前项目的git 目录中的配置文件(也就是工作目录中的.git/config 文件):这
里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以
.git/config 里的配置会覆盖/etc/gitconfig 中的同名变量。

 

git config  --global user.name  “qianghaohao”  设置用户名

git config  --global user.email   xxxx@xxxx    设置用户邮箱

git config  --list    查看配置信息

 

 

git help<verb>        获取帮助

git clone          克隆远程服务端的仓库

exgitclone  https://github.com/qianghaohao/project1.git

git status         查看当前目录下文件的状态

git add文件名   跟踪文件或者将文件加入暂存区

git diff           查看更改后的文件和暂存区相同文件的区别

git diff  - -cached  查看暂存区文件和上一次提交文件的区别

.gitignore文件   一般在.git最目录下创建可以忽略某些文件纳入git

ex*.o         在目录下不让后缀名为.o的文件纳入git管理

git commit       提交存放在暂存区的快照(提交更新)

git commit  -a    跳过使用暂存区,直接把存放在暂存区的文件修改过后提交更新。

git rm文件名      删除提交后的文件

git rm –cached文件名      从跟踪清单中移除文件,但不删除

git mv原文件名 目标文件名  修改文件名

git log               查看提交历史

git gitk                相当于git log的可视化界面

git commit  –ament   修改最后一次提交

git reset HEAD文件名 取消已经暂存的文件

 

要参与任何一个 Git项目的协作,必须要了解该如何管理远程仓库。远程仓库是指托管
在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有些可以写。

git remote             查看当前配置有哪些远程仓库

git remote  -v        查看当前配置有哪些远程仓库和对应的地址

 

 

 

git fetch远程仓库名  从远处仓库中拉取本地仓库没有的数据

git remote show远程仓库名  查看远程仓库的信息

git remote rename原远程仓库名 新远程仓库名 更改远程仓库名

ex:git remote rename project2 project4

git remote rm 远程仓库名  删除远程仓库

git tag –a                  建立含附注标签

exgit tag –a v1.0

git show标签名          查看标签版本信息

 

 

  /*分支相当于指向commit提交对象的指针,会随着提交向前推进 */

git branch分支名           建立一个分支,但不会自动切换到这个分支中去

git checkout分支名             切换到分支中去

git  checkout  –b  分支名 新建并切换到该分支中去    

git merge分支名           合并分支

git branch –d 分支名       删除分支

git mergetool              冲突合并工具,图形界面的合并工具

git branch --merged          查看哪些分支合并到当前分支

git branch --no-merged      查看尚未合并到当前分支的分支

git fetch远程仓库名        先找到仓库是哪个服务器,然后获取尚未拥有的数据,更新本地数据库

git push远程名本地分支名:远程分支名   提取本地的分支名,并更新到远程的分支名

git push远程名:远程分支     删除远程分支

 

/***         托管项目到gitHub       *****/

一旦拥有一个本地 Git仓库,把 GitHub添加为远程仓库并推送 master 分支:

git remote add origin 远程仓库地址

git push origin master


附加问题:在提交之前先git pull一下,让远程和本地同步,然后再提交------>git push,如果不先git pull

下会提示失败.

 

 


posted on 2015-06-22 22:26  CodeNutter  阅读(164)  评论(0编辑  收藏  举报

导航