Git笔记

101 阅读3分钟

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 ; 删除分支名        

参考博客:

www.cnblogs.com/best/p/7474…