[git]git notes

2018-03-10  本文已影响0人  JaneDo9

介绍


VCS(Version Control Systems)

版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。运用版本控制的好处:可以随意回退到某一时间点的状态,比较文件的变化细节,查出修改人及其修改内容等。

CVCS(Centralized...)

集中化版本控制系统都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。

DVCS(Distributed)

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

概念


其他VCS的记录 Git的记录 3种文件状态及3个区域 工作目录下文件变化周期 合并 变基

Git常用命令


git config

配置有3种级别,分别对应3个前缀:系统(system)、用户(global)、仓库(local)。默认级别是仓库,后者的设置会优先于前者的设置。

git help

查看帮助手册。

git init

将一个项目(文件夹)初始化为一个Git仓库。将在文件夹内创建名为.git的子目录,该子目录标记其为一个Git仓库并存有Git仓库的骨干内容。该命令通常应用于已有项目。

git clone

克隆远程Git仓库到本地。远程仓库的所有历史记录也会被拉取到本地,本地所拥有的是一个完整的镜像版本。

git status

显示当前仓库内各文件的状态,以及当前处于哪个分支等信息。

git add

将文件或目录下的所有文件标记为跟踪状态,即纳入VCS管理。文件会处于已暂存状态。

.gitignore

git diff

比较尚未暂存的改动。--cached--staged选项则比较暂存后但未提交的改动。

git commit

git rm

git mv

移动或者重命名文件,与直接mv的区别类似于直接rmgit rm的区别。

git log

查看提交历史。

git status的区别是:git status观察范围是一个commit周期内,而git log观察的对象是所有commit。

git remote

查看已配置的远程仓库信息。origin是Git对远程仓库设置的默认名字。

git clone <url>

将其配置为远程仓库并默认以origin命名,自动设置本地master分支跟踪远程仓库的默认分支(master)。

git fetch <remote-name>

拉取服务器上的远程仓库数据到本地,含当前分支信息。该命令会抓取克隆或上一次抓取后新推送的所有工作,而并不会自动尝试合并到本地当前分支。合并对象:本地当前分支——本地当前分支跟踪的远程分支

git pull

git fetch且自动尝试合并分支。

git push <remote-name> <branch-name/tag-name>

将指定分支推送到远程仓库,也可推送标签到远程仓库。

git show <tag/commitid>

展示commit信息。

git tag

git reset [commitid/tagname] [file]

git reset [commitid/tagname] -- [file]仅仅将暂存区的文件内容设置到指定commit节点。

git branch

git checkout

切换至分支。

git checkout -- <file>用暂存区覆盖工作区。

git merge

将当前分支与指定分支合并。

git rebase [basebranch] [topicbranch]

变基。

git stash

储藏工作区及暂存区的变动。储藏后工作目录是干净的。

git stash apply git stash apply --index

git clean

移除未被跟踪的文件。慎用。

git reflog

引用日志记录了最近几个月你的HEAD和分支引用所指向的历史。

附注


checkout VS reset --hard

checkout branchreset --hard <commitid>有点类似,均会更新3个区域使其看起来像branch,但有2点主要不同。

  1. 对工作目录安全。它会在工作目录中尝试简单合并一下,使得工作区未修改的文件都会被更新,即有可能产生冲突。而reset --hard则不作检查。
  2. 分支的指向。假设有developmaster两个分支切处在develop中。
checkout VS reset --hard 详细对比

参考

上一篇 下一篇

猜你喜欢

热点阅读