Git命令(2)

124 阅读4分钟

版本的回溯与前进

-提交一个文件,有时候我们会提交很多次,在提交历史中,这样就产生了不同的版本。每次提交,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 other git 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 + z
  • git 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,远程仓库默认名称为origin
  • git 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