git基本概念、基本命令、与SVN对比

基本概念:

(1)工作区:电脑可以看到的目录。

(2)暂存区:stageindex,一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

(3)版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

 

Index:暂存区(.git/index)             HEAD:指向master分支的一个”游标”

Objects: git的对象库(.git/object  含创建的各种对象及内容)

Master:master分支所代表的目录树。

Git:保存不同时刻的文件快照。

  Git分支:本质仅仅是指向提交对象的可变指针。

(1)git add命令:暂存区的目录树被更新,工作区修改(增加)的文件内容被写入到对象库中新对象中,对象ID被记录在暂存区文件索引中。

(2)git commit 命令:暂存区目录树写到对象库master分支更新。(指向的目录书就是提交时暂存区的目录树)。

(3)git reset HEAD命令:暂存区目录树被master分支指向的目录树所替换。  

(4)git rm --cached  <file>命令:直接从暂存区删除指定文件,工作区不改变。

(5)git checkout  . 或git checkout -- <file>命令:用暂存区全部或指定文件替换工作区文件。(危险:清除工作区未添加到暂存区的改动

      git checkout 也可切换工作空间。

(6)git checkout HEAD . 或 git check out HEAD <file> 命令:会用HEAD指向的master分支中全部或部分文件替换暂存区和工作区中的文件。(危险:会清除工作区及暂存区未提交的改动)。

(7) git init 初始化版本库,当前文件夹下初始化一个仓库,此时文件里会到一个.git的隐藏文件夹(将当前目录变为仓库)

8git pull :将远程库数据更新至本地

9git push origin master:将本地库提交至远程库。

基本命令

1配置:

配置用户名:git config --global user.name "你的名字"
配置e-mail:git config --global user.email "你的邮箱@xx.com"

2与添加有关的:

将当前目录变为仓库:git init
将文件添加到暂存区:git add 文件名 [可选:另一个文件名]
将暂存区提交到仓库:git commit –m "描述"

3与查询有关的:

查询仓库状态:git status
比较文件差异(请在git add之前使用):git diff 文件名
查看仓库历史记录(详细):git log
查看仓库历史记录(单行):git log --pretty=online 或 git log --online
查看所有版本的commit ID:git reflog

4与撤销有关的:

撤销工作区的修改:git checkout -- 文件名
撤销暂存区的修改:git reset HEAD 文件名
回退到历史版本:git reset --hard 该版本ID
回退到上个版本:git reset --hard HEAD^

5与标签有关的

为当前版本打标签:git tag 标签名
为历史版本打标签:git tag 标签名 该版本ID
指定标签说明:git tag –a 标签名 –m "标签说明" [可选:版本ID]
查看所有标签:git tag
查看某一标签:git show 标签名
删除某一标签:git tag –d 标签名

6GitHub有关的:

先有本地库,后有远程库,将本地库push到远程库

关联本地仓库和GitHub库:git remote add origin 网站上的仓库地址
第一次将本地仓库推送到GitHub上:git push –u origin master

先有远程库,后有本地库,从远程库clone到本地库

从远程库克隆到本地:git clone 网站上的仓库地址

网站地址可以选择HTTPS协议(https://github.com...)、SSH协议(git@github.com...)。
如果选择SSH协议,必须将Ubuntu的公钥添加到GitHub上。见下一步

SSH Key

生成SSH Key:ssh-keygen –t rsa –C "你的邮箱@xx.com"
生成Key时弹出选项,回车选择默认即可。
Key保存位置:/root/.ssh
登陆GitHub,创建new SSH key,其内容为/root/.ssh/id_rsa.pub中文本

已经有了本地库和远程库,二者实现同步

Git与Svn区别?

(1)Git为分布式,且内容按元数据方式存储,且没有全局版本号,且内容完整性优.(使用哈希算法磁盘故障时,可降低对版本库破坏)

(2)Svn为非分布式,内容按文件存储,有明确的版本号。

 

参考网站:

(1)http://blog.youkuaiyun.com/tomatozaitian/article/details/73515849

(2)http://www.runoob.com/git/git-workspace-index-repo.html

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

基础命令:

git --version  查看git的版本信息

git config --global user.name  获取当前用户的登录名。

git config --global user.email  //获取当前登录用户的邮箱

登录git (设置git用户信息)

git config --global user.name ‘设置英文用户名

git config --global user.email ‘设置的Email’

初始化git仓库

git  init  当前文件夹下初始化一个仓库,此时文件里会到一个.git的隐藏文件夹(将当前目录变为仓库)

git commit -m ‘备注信息’ 增加到版本库

git log         查看仓库历史记录(详细 )

git status      查看仓库状态

git rm in.txt --cached  删除暂存区指定文件

git reflog      查看版本的提交ID

git reset       取消暂存

git pull        从远程库获取,并合并到本地分支

 

GitHub有关的:

  关联本地仓库和GitHub库:git remote add origin 网站上的仓库地址

第一次将本地仓库推送到GitHub上:git push –u origin master

从远程库克隆到本地:git clone 网站上的仓库地址

比较差异

比较的是暂存区和工作区的差异

git diff

比较的是暂存区和历史区的差异

git diff --cached

比较的是历史区和工作区的差异(修改)

git diff master

合并分支:

 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值