创建版本库-->repository-->一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
创建一个版本库:mkdir 名称
把目录变成Git可以管理的仓库:git init
把文件添加到仓库:git add 文件名
把文件提交到仓库:git commit -m 提交说明
为什么Git添加文件需要add,commit两步呢?因为commit可以一次提交很多文件,所以可以多次add不同的文件
git status:时刻掌握仓库当前的状态
git diff:查看修改的内容
版本回退-->
git log:查看日志,显示从最近到最远的提交日志
在git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上个版本就是HEAD^^
git reset:回退到上一个版本 git reset --hard HEAD^ git reset --hard 版本号
git reflog:查看命令历史
工作区和暂存区-->
git add把文件修改添加到暂存区;
git commit把暂存区的所有内容提交到当前分支
管理修改-->
git diff HEAD -- 文件名 查看工作区和版本库里面最新版本的区别
撤销修改-->
git checkout -- 文件名 把文件在工作区的修改全部撤销
git reset HEAD 文件名 把暂存区的修改撤销掉,重新放回工作区
删除文件-->
git rm 从版本库删除文件
分支管理
创建与合并分支-->
每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支
HEAD指向当前分支
创建分支并切换到分支:git checkout -b
git branch 名称:创建分支
git checkout 名称:切换分支
git branch:查看当前分支,列出所有分支
切换回master分支:把dev分支上的修改合并到master分支上 git merge dev
git merge 名称:合并指定分支到当前分支
合并的Fast-forward模式:直接把master指向dev的当前分支
git branch -d 名称:删除分支
git switch -c 名称:创建并切换分支
git switch 名称:切换分支
解决冲突-->
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容
git log:查看分支的合并情况
分支管理策略-->
Fast forward模式下,删除分支后,会丢掉分支信息
如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,就可以在分支历史上看出分支信息
git merge --no-ff -m 信息 名称
Bug分支-->
git stash:保存当前工作现场
git stash list:查看保存的工作现场
恢复:git stash apply,恢复后,stash内容并不删除,需要用git stash drop来删除
git stash pop,恢复的同时把stash内容也删了
git stash apply stash@{},恢复指定的stash
复制一个特定的提交到当前分支:git cherry--pick 名称