版本的回溯与前进
-提交一个文件,有时候我们会提交很多次,在提交历史中,这样就产生了不同的版本。每次提交,Git会把他们串成一条时间线。如何回溯到我们提交的上一个版本,用git reset --hard + 版本号即可。 版本号可以用git log来查看,每一次的版本都会产生不一样的版本号。回溯之后,git log查看一下发现离我们最近的那个版本已经不见了。但是我还想要前进到最近的版本应该如何?只要git reset --hard + 版本号就行。退一步来讲,虽然我们可以通过git reset --hard + 版本号,靠记住版本号来可以在不同的版本之间来回穿梭。但是,有时候把版本号弄丢了怎么办?git reflog帮你记录了每一次的命令,这样就可以找到版本号了,这样你又可以通过git reset来版本穿梭了。
删除
- 如果你
git add一个文件到暂存区,然后在工作区又把文件删除了,Git会知道你删除了文件。如果你要把版本库里的文件删除,git rm并且git commit -m "xxx". - 如果你误删了工作区的文件,怎么办?使用撤销命令,
git checkout --<file>就可以。这再次证明了撤销命令其实就是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
创建分支
-
创建分支other,切换到other分支。
git branch othergit checkout other -
查看当前所有分支
git branch
- other
- master
当前的分支会有一个*
用other提交
git add ./xxx/
git commit -m "xxx"
other分支完成,切换回master
git checkout master
此时,master分支上并没有other的文件,因为分支还没有合并。
常用Git命令总结
git config --global user.name "你的名字" 让你全部的Git仓库绑定你的名字git config --global user.email "你的邮箱" 让你全部的Git仓库绑定你的邮箱git init初始化你的仓库- -
git add .把工作区的文件全部提交到暂存区 git add ./<file>/把工作区的文件提交到暂存区git commit -m "xxx"把暂存区的所有文件提交到仓库区,暂存区空空荡荡git remote add origin https://github.com/name/name_cangku.git把本地仓库与远程仓库连接起来git push -u origin master把仓库区的主分支master提交到远程仓库里git push -u origin <其他分支>把其他分支提交到远程仓库git status查看当前仓库的状态git diff查看文件修改的具体内容git log显示从最近到最远的提交历史git clone + 仓库地址下载克隆文件git reset --hard + 版本号回溯版本,版本号在commit的时候与master跟随在一起git reflog显示命令历史git checkout -- <file>撤销命令,用版本库里的文件替换掉工作区的文件。我觉得就像是Git世界的ctrl + zgit rm删除版本库的文件git branch查看当前所有分支git branch <分支名字>创建分支git checkout <分支名字>切换到分支git merge <分支名字>合并分支git branch -d <分支名字>删除分支,有可能会删除失败,因为Git会保护没有被合并的分支git branch -D + <分支名字>强行删除,丢弃没被合并的分支git log --graph查看分支合并图git merge --no-ff <分支名字>合并分支的时候禁用Fast forward模式,因为这个模式会丢失分支历史信息git stash当有其他任务插进来时,把当前工作现场“存储”起来,以后恢复后继续工作git stash list查看你刚刚“存放”起来的工作去哪里了git stash apply恢复却不删除stash内容git stash drop删除stash内容git remote查看远程库的信息,会显示origin,远程仓库默认名称为origingit remote -v显示更详细的信息 -git pull把最新的提交从远程仓库中抓取下来,在本地合并,和git push相反git rebase把分叉的提交历史“整理”成一条直线,看上去更直观 -git tag查看所有标签,可以知道历史版本的tag -git tag <name>打标签,默认为HEAD。比如git tag v1.0 -git tag <tagName> <版本号>把版本号打上标签,版本号就是commit时,跟在旁边的一串字母数字 -git show <tagName>查看标签信息git tag -a <tagName> -m "<说明>"创建带说明的标签。 -a指定标签名,-m指定说明文字git tag -d <tagName>删除标签git push origin <tagname>推送某个标签到远程it push origin --tags一次性推送全部尚未推送到远程的本地标签git push origin :refs/tags/<tagname>删除远程标签git config --global color.ui true让Git显示颜色,会让命令输出看起来更醒目git add -f <file>强制提交已忽略的的文件git check-ignore -v <file>检查为什么Git会忽略该文件
合并后要push
。