一直只会常用的那几个 Git 命令,每次遇到不会的操作都是现去Google,十分不方便,今个得空咋就仔仔细细的学习学习 Git !
Git是目前世界上最先进的分布式版本控制系统。
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
#对某个项目想单独配置信息可以使用
git config user.name "Your Name"
git config user.email "email@example.com"
git config --global user.name #查看配置的全局名字
git config --global user.email #查看配置的全局邮箱地址
git config --list #查看当前项目的git配置信息(会先列出全局配置,最下面列出的是当前项目的配置)整页翻页 ctrl-f(往前翻) ctrl-b(往后翻)
git init
#第一步:把文件添加到暂存区
git add <file> #添加单个文件
git add . #添加所有文件
#第二步,把暂存区文件提交到本地仓库
git commit -m <message>
例子:新建learngit文件夹,并将该文件夹初始化为Git仓库,再向仓库中添加一个test.txt文件
mkdir learngit
cd learngit
git init
vim test.txt
git add test.txt
git commit -m "add a test file"
将当前分⽀回滚到指定版本,保持⼯作区和暂存区状态不变。
git reset --soft HEAD^ #回退到上一个版本
git reset --soft HEAD~n #回退到前n个版本
git reset --soft <commit id> #回退到指定版本,id可通过git log查看
将当前分⽀回滚到指定版本,清除暂存区的修改,但保持⼯作区状态不变。
git reset HEAD^ #回退到上一个版本
git reset HEAD~n #回退到前n个版本
git reset <commit id> #回退到指定版本,id可通过git log查看
将当前分⽀回滚到指定版本,清除暂存区的修改,并强制删除所有⼯作区的修改
git reset --hard HEAD^ #回退到上一个版本
git reset --hard HEAD~n #回退到前n个版本
git reset --hard <commit id> #回退到指定版本,id可通过git log查看
现在,你回退到了某个版本,关掉了电脑(无法使用git log 查看到回退前的commit id),第二天早上就后悔了,想恢复到回退前的版本怎么办?但是找不到回退前版本的commit id
怎么办?
git reflog #查看所有的历史命令,获取你想要回到的版本id,
git reset --hard <commit id> #回退到该版本
Git用master
指向最新的提交,再用HEAD
指向master
,就能确定当前分支,以及当前分支的提交点
Git新建一个指针叫dev
,指向master
相同的提交,再把HEAD
指向dev
,就表示当前分支在dev
上
对工作区的修改和提交就是针对dev
分支了,比如新提交一次后,dev
指针往前移动一步,而master
指针不变
假如我们在dev
上的工作完成了,就可以把dev
合并到master
上。就是直接把master
指向dev
的当前提交,就完成了合并
合并完分支后,甚至可以删除dev
分支。删除dev
分支就是把dev
指针给删掉,删掉后,我们就剩下了一条master
分支
git branch [branch_name]
git checkout [branch_name]
git switch [branch_name]
git checkout -b [branch_name]
git switch -c [branch_name]
git merge [branch_name] #用于合并指定分支到当前分支
git branch -d [branch_name]
git branch -vv #查看当前开发分支(当前分支前面会标一个*号)
git branch #查看本地所有分支
git branch -r #查看远程所有分支
git branch -a #查看本地和远程所有分支
git log #查看历史提交记录
git log --pretty=oneline #查看简洁版历史提交记录
git log --graph #查看历史提交记录拓扑图
git log -p <file> #指定文件的历史提交记录
git blame <file> #查看指定文件的历史修改记录
更多 git log 命令可查看:http://git-scm.com/docs/git-log
git status #查看项目文件此时的状态(在工作区、缓存区还是在仓库中)
git reflog #查看所有的历史命令
git remote -v #查看远程仓库地址
git diff #⽐较⼯作区和暂存区的修改
git diff HEAD #⽐较⼯作区和上⼀次commit后的修改。
git diff --cached #⽐较暂存区和上⼀次commit后的修改。
一款用于Windows和Mac的免费Git可视化管理工具。
详细用法可参考: