Git之不明觉厉1-基本操作和概念

不明觉厉的git

在虚拟的计算机世界,git让我们体会到了一种不一样的感觉,也许是那种不明觉厉的高深莫测。

什么是git

Git is a DISTRIBUTED VERSION CONTROL SYSTEM (DVCS)

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

DVCS和CVCS的区别

下面这个图是svn的仓库,有一个中心仓库,所有的人都需要去往这个仓库里面提交代码,新的代码也需要从仓库中获得。

Git之不明觉厉1-基本操作和概念_第1张图片
Paste_Image.png

下面这个是git的模式,每一个人都有完整的仓库,虽然下面的图中还是有一个中心仓库,但是不是必须的,每个人自己都可以提交代码,互相之间可以合并代码。

Git之不明觉厉1-基本操作和概念_第2张图片
Paste_Image.png

虎父无犬子,Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

官网

http://git-scm.com/

图形界面工具

很多,我最喜欢的是source tree.

git入门的基本命令

下面的贴图是我的命令行工具,使用的是zsh,感兴趣的朋友可以看一下这个链接oh-my-zsh

获取帮助

看看如何获得帮助

git help

Git之不明觉厉1-基本操作和概念_第3张图片
Paste_Image.png

git help config

如果想查询具体某个命令的帮助,可以在git help后面加上该命令

Git之不明觉厉1-基本操作和概念_第4张图片
Paste_Image.png

配置基本信息

基本信息会保存在你提交的修改中,作为备份,所以如果我们对项目做了多少贡献,都是可以查出来的。

加上自己姓名

git config --global user.name "Yin Shen"

加上自己邮箱

git config --global user.email [email protected]

加上颜色

git config --global color.ui true
Git之不明觉厉1-基本操作和概念_第5张图片
Paste_Image.png

创建仓库

现在让我们创建一个仓库来实战吧, 使用init命令就可以啦。

git init 
Paste_Image.png

git基本概念

  • 创建一个新文件的时候,该文件处于没有被追踪的状态


    Git之不明觉厉1-基本操作和概念_第6张图片
    Paste_Image.png
  • 使用add命令,使得文件登上舞台(staging staging)
    登上舞台是为了拍照,我们看一下第三个状态

Git之不明觉厉1-基本操作和概念_第7张图片
Paste_Image.png

上图的git st实际上是git status命令,被重命名了。

  • 把staging staging中的东西都拍照(commit change)
    被拍照的文件都有了一个snapshot(快照)
Git之不明觉厉1-基本操作和概念_第8张图片
Paste_Image.png

上面的步骤是我们使用git的一个最重要的模式:edit/stage/commit pattern

  1. 在本地文件夹编辑文件
  2. 如果想备份当前改动了,就使用git add命令放到舞台(stage)
  3. 如果对staged snapshot满意,就可以commit,这样这个snapshot就变成项目历史的一部分了
Git之不明觉厉1-基本操作和概念_第9张图片
Paste_Image.png

注意:add,commit命令都是对本地文件的操作,这个和SVN有很大的差别,SVN的所有操作都要和远程服务器通信,但是git是分布式的,大部分操作并不一定需要和中心仓库交互。
具体区别可以看这个链接https://www.atlassian.com/git/tutorials/saving-changes/git-add

add的多种方式

git add    
git add --all 
git add *.txt     
git add 文件夹/*.txt       
git add 文件夹  
git add "*.txt" 

日志

可以使用

git log
git log --pretty=oneline
git log --pretty=format:"%h %ad- %s [%an]"
查看修改历史可以用
git blame index.html --date short

删除文件

从文件系统删除
git rm README.txt 
不跟踪
git rm --cached development.log

好用的命令别名

把她们加在.gitconfig文件中就可以了,或者像这样通过命令行配置git config --global alias.mylog "log --pretty=format:'%h %s [%an]' --graph"

mylog = log --pretty=format:'%h %s [%an]' --graph
co=checkout
br=branch
ci=commit
st=status
unstage=reset HEAD --
last=log -1 HEAD
pl1=log origin/yourbranch -1 --pretty=oneline
pl3=log origin/yourbranch -3 --pretty=oneline

你可能感兴趣的:(Git之不明觉厉1-基本操作和概念)