Git分享

QueWylie 8年前

来自: http://yifeiyuan.me/2016/03/06/Git分享/

控制版本系统(VCS)

版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统

集中化控制系统(CVCS)

集中化控制系统都有一个单一的集中管理的服务器,保存所有文件的修订版本,客户端通过这台服务器获取文件或提交更新.

缺点

很明显,中央服务器是个中心,一旦它出了问题就会影响整个系统.

中央服务器单点故障,如果服务器一挂,那么整个系统就挂了,无法工作

甚至,中央服务器磁盘故障,很可能导致数据丢失,丢失所有历史更改记录等重要信息.

分布式版本控制系统(DVCS)

客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份

Git–控制版本之神

简史

作者,大神 Linus Torvalds

优点:

  • 速度
  • 简单的设计
  • 对非线性开发模式的强力支持(允许上千个并行开发的分支)
  • 完全分布式
  • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

Git常用命令

config

git config –global

git config --global user.name "alan"  git config --global user.email alancheen06@gmail.com
</div>

git config --list 查看配置列表

init

git init 用来初始化项目

它会创建一个 .git 目录,它包含所有初始化git的所有文件

clone

git clone url   git clone url name #重命名成name
</div>

文件的状态

接下去的命令跟

add

untracked===>staged

git add file  git add .
</div>

staged===>untracked

git reset HEAD file
</div>

commit

git commit -m "init"  git commit -a -m "init"  git commit -am "init"
</div>

branch

创建分支

git branch branchname
</div>

PS:当init一个仓库时,master需要先commit一遍才能新建其他分支,否则会得到一个错误 fatal: Not a valid object name:'master'.

切换分支

git checkout branchname
</div>

创建并切换分支

git checkout -b branchname
</div>

查看分支

git branch -r -a -l
</div>

删除分支

git branch -d banchname  #删除本地分支    git branch --delete branchname #删除远程分支
</div>

远程协作

pull

git pull origin master
</div>

push

git push origin master
</div>

其他

git log

git reflog

git reset

git stash/pop

git help add

….

gitignore

gitflow

iTerm+oh my zsh

</div>