1.什么是Git
Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
2.常用指令
git init:把当前目录变成Git可以管理的仓库;
git add <file>:把文件加入到仓库文件索引当中;
git commit -m “XXX”:把当前所有add文件提交到仓库,-m“XXX”为本次提交的说明;
git status:可以显示仓库当前状态,如仓库中什么文件有未被提交的更新;
git diff <文件名>:比较并显示当前的工作目录和仓库中的差异;
git log:显示从最近到最远的提交日志,可以添加--pretty=oneline参数简化显示,添加--graph参数看分支合并图;
git reflog:查看所有分支的所有操作记录;
git reset --hard head^:回退至上个版本,^表示前一个版本,可用head~100来表示回退至前一百个修改版本,--hard参数表示彻底回退,会更改本地源码;
git checkout -- <文件名>:撤销工作区修改,退至最近一次add或commit操作时状态;
git reset HEAD <文件名>:撤销暂存区修改,将修改放回工作区;
git rm <文件名>:删除指定文件;
git push -u <远程主机名> <本地分支名>:把本地分支推送至远程主机对应分支,-u参数表示经绑定当前连接远程主机为默认主机;
git clone:克隆一个仓库;
git checkout <分支名>:切换至该分支;
git checkout -b <分支名>:-b参数表示创建并切换至该分支;
git branch:列出所有分支,当前分支前面会标一个*号;
git branch -d <分支名>:删除该分支;
git merge <分支名>:把该分支合并到当前分支,如果想保留合并历史可添加“--no-ff”参数;
git stash:用于把当前工作区stash(隐藏)起来;
git stash list:查看stash域内所有列表;
git stash apply:从stash域中恢复至工作区,不删除stash域中内容;
git stash drop:删除stash域中内容;
git stash pop:从stash域中恢复至工作区并删除stash域中内容;
git branch -D <分支名>:强制删除一个未被合并过的分支;
git remote:查看远程库信息;
git pull <远程主机名> <远程分支名>:<本地分支名>:取回远程主机某分支的更新,再与本地的指定分支合并;
git fetch <远程主机名>:取回远程主机所有分支更新;
git rebase:作用同git merge;
3.一些相似指令之间的区别
git merge 与 git rebase
git rebase修改后查看分支合并图时会比较清晰,不显示所有合并情况只显示最终情况。
git pull 与 git fetch
git pull = git fetch + git merge ,一般推荐使用git fetch,然后根据实际情况merge。