GIT基础整理

一些概念:

本地仓库由git维护的三棵“树”组成:

第一个是工作目录,它持有实际文件;

第二个是暂存区(Index),它像个缓存区域,临时保存改动;

最后是HEAD,它指向最后一次提交的结果。

分支:用来将特性开发绝缘开来的。master是默认的分支。在其他分支上进行开发,完成后再将它们合并到主分支上。

里程碑即tag:其管理和分支管理非常类似。里程碑和分支一样也是以引用的形式存在的,保存在.git/refs/tags/路径下。引用可能指向一个提交,但也可能是其他类型(Tag对象)

一些命令:

检出仓库:

创建一个本地仓库的克隆版本:

git clone /path/to/repository

创建远端服务器上的仓库的克隆版本:

git clone username@host:/path/to/repository

添加和提交:

提出更改添加到暂存区:

git add <filename>
git add *

提交改动到HEAD区:

git commit -m "代码提交信息"

推送改动:

改动提交到远端仓库:(master是创建仓库时“默认的”分支,可以换成想要推送的任何分支)

git push origin master
//命令行中的-u参数,在推送成功后自动建立本地分支与远程版本库分支的追踪
git push -u origin master

切换、删除和推送分支:

git checkout -b feature_x //切换到feature_x的分支
git checkout master //切换回主分支
git branch -D feature_x //新建的分支删掉,参数-D则可强制删除尚未合并的分支
git push origin <branch> //分支推送到远端仓库,不然该分支就是不为他人所见的

更新与合并:

git pull //更新本地仓库至最新改动
git remote //查看当前项目下远程
git remote add <branch> //增加新的分支链接
git fetch <branch> //获取分支的远程更新
git merge <branch> //合并其他分支到你的当前分支

替换本地改动:

//使用 HEAD 中的最新内容替换掉本地改动,已添加到暂存区的改动以及新文件都不会受到影响
git checkout -- <filename> 
//丢弃本地的所有改动与提交:服务器上获取最新的版本历史,并将本地主分支指向它
git fetch origin
git reset --hard origin/master

创建里程碑:

轻量级里程碑:gittag<tagname>[<commit>]命令

带说明的里程碑:gittag-a<tagname>[<commit>]命令---保存里程碑说明、指向、创建里程碑的用户等信息

带签名的里程碑:gittag-s<tagname>[<commit>]命令---引入了PGP签名,保证了所创建的里程碑的完整性和不可拒绝性

相关推荐