1.SVN与Git的区别
SVN集中式版本控制系统,有一个中央服务器(存储历史版本),断网无法工作。 Git分布式版本控制系统,每台主机上都有存储历史版本,断网也可工作,为了同步,依然还是有一个中央服务器。分支也比SVN强大。
工作区:working tree 暂存区:index/stage git仓库:repository
2.git init; 创建工作目录,再执行该命令初始化git仓库,目录下有个.git
3.git add ; 将文件加入暂存区
4.git commit -m "备注"; 将文件提交到本地仓库
5.git diff ; 比较该工作区文件与本地仓库当前版本(也叫HEAD)里的该文件的区别
git diff; 工作区和暂存区的差别
git diff --cached; 暂存区与git仓库的差别
git diff HEAD; 工作区与git仓库的差别
6.git status; 查看仓库的状态(哪些被修改过了,没有add/commit)
7.git log; 查看版本仓库历史记录(本版本之前的,A->B->C,回滚到B只能看到A)
8.git reset --hard ; 回到某一版本,HEAD表示当前版本,版本号=commitId,写前几位能标识唯一即可
git reset HEAD ; 将暂存区的内容回退到工作目录中。
git reset HEAD; 暂存区的目录树会被git仓库HEAD指向的目录树替换,工作区不受影响
9.git reflog; 查看版本历史记录信息(ABC版本都可看到)
10.git checkout .; 或 git checkout -- ; 将暂存区全部或指定的文件替换本地的文件
git checkout HEAD .; 或 git checkout HEAD ; 工作区和暂存区的目录树将被git仓库HEAD指向的目录树替换/覆盖
11.场景案例(覆盖本地修改): 1)本地修改未提交暂存区:git checkout -- ; 2)本地修改已提交暂存区: git reset HEAD ; git checkout -- ; 3)本地修改已提交git本地仓库: git reset --hard ;
12.git rm --cached ; 将文件从暂存区删除,工作区不作任何改变
13.git clone []; 克隆远程存在的仓库[指定的目录]
14.设置git配置信息(提交的用户和密码) git config -e; 修改当前仓库的配置信息 git config -e --global; 修改全局仓库的配置信息 git config user.name [--global] "USERNAME"; 也可以命令修改配置信息 git config --list;或 cat config; 查看配置信息
15.分支
git branch ; 建立分支
git checkout ; 切换分支
git merge ; 合并分支(将其他分支合并到当前分支(HEAD)上)
git branch -f main HEAD~3; 强制切到前三级提交节点
git reset HEAD~1; 将本地git仓库用上一个提交的版本替换掉,本次提交的失效(原版本信息:A->B->C->D,reset后:A->B->C)
git revert HEAD; 将本地的git仓库用上一个提交的版本替换并产生新提交版本,本次是一个父节点(revert后:A->B->C->D->C')
git checkout -b ; 创建新分支,并切到该分支
等于git branch ;
git checkout ;前者是创建新分支,后者是切换到该分支
也等于git switch -c ; 创建并切换到新分支
git branch; 查看所有分支,有*为当前分支
git branch -d ; 删除分支名
参考博客: