当前位置:   article > 正文

git 常见指令_git checkout -b作用

git checkout -b作用

git 常见指令

git checkout:

创建分支

git checkout xxx :转换到xxx分支
git checkout -b xxx :将当前分支创建出xxx分支并切换到xxx分支
git checkout -b xxx 远程仓库名/远程分支名 :将远程仓库/远程分支的基础上创建出xxx分支(与远程仓库的特定分支建立联系)并切换到xxx分支
  • 1
  • 2
  • 3

将某个文件恢复到某个版本

git checkout xxx yyy:把yyy文件恢复到commit版本号为xxx的版本
  • 1

把工作区的文件恢复到上一次提交 (被删除、被修改的操作还没暂存的情况)

git checkout  -- xxx:恢复没有暂存的文件xxx,恢复到上一次提交的时候
  • 1

把 当前目录所有修改的文件 从HEAD中签出并且把它恢复成未修改时的样子.

git checkout .:这条命令把 当前目录所有修改的文件 从HEAD中签出并且把它恢复成未修改时的样子.
  • 1

git fetch

更新远程仓库的分支(不会修改工作区中的内容,需要自己合并)

git fetch <remote>:将远程仓库上抓取本地没有的数据,并且更新本地数据库,移动远程仓库的所有分支移动到最新位置,但是origin/HEAD对应的本地分支没有移动

git fetch 远程仓库名 远程分支名:将远程仓库的远程分支中本地分支没有的数据拉取回来,并移动本地中远程仓库/远程分支的指针
  • 1
  • 2
  • 3

git branch

显示分支

git branch :显示出所有本地分支
git branch -r :显示出远程分支
git branch -a :显示出所有分支
git branch -vv:显示本地分支与远程分支的联系
  • 1
  • 2
  • 3
  • 4

创建分支

git branch xxx:在当前分支创建xxx分支
  • 1

删除分支

git branch -d xxx:删除本地分支xxx
  • 1

git add

将本地工作区加入到暂存区

git add . :将当前目录下的所有文件加入到暂存区
  • 1

git rm

在工作区和暂存区都删除文件

git rm -f xxx:将工作区和暂存区中的文件xxx删除
  • 1

删除暂存区文件,不删除工作区的文件即只是撤销暂存区的内容:

git rm --cached xxx:将xxx文件从暂存区中删除换句话说就是摆脱追踪
  • 1

git commit

将暂存区提交

git commit -m "xxx":将暂存区内的内容提交并提交信息为xxx(重新建立一个提交)
  • 1

将暂存区追加到提交中

git commit --amend:将暂存区的内容追加到本次提交中
  • 1

git reset

工作区回滚到特定版本:

git reset --hard xxx:把工作区回滚到特定提交xxx的版本号上此时xxx后面的提交都会被覆盖
比如:git reset --hard HEAD:把工作区回滚到上一次提交的版本并情况暂存区
  • 1
  • 2

把某个文件取消暂存

git reset hard xxx:把将XXX文件取消暂存
  • 1

git push

将本地仓库推送到远程仓库

git push 远程仓库名 本地分支名 :将该本地分支推送到远程仓库的追踪的远程分支,如果不存在则在远程仓库创建一个本地分支名同名的远程分支


git push --set-upstream 远程仓库名 远程分支名:将本地分支与远程仓库远程分支建立联系,如果该远程分支名不存在则创建,之后只要用git push就行


git push 远程仓库名  本地分支名xxx:远程分支名yyy:把本地分支xxx推送到远程仓库的yyy分支上
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

删除远程仓库的远程分支

git push 远程仓库名  --delete xxx:删除远程仓库上xxx分支
  • 1

git diff

查看当前分支工作区和暂存区之间的差别

git diff:查看当前分支工作区和暂存区之间的差别
  • 1

查看当前分支工作区和版本库之间的差别

git diff HEAD:查看当前分支工作区和版本库之间的差别
  • 1

查看当前分支暂存区与版本库之间的差别

git diff --cached
  • 1

查看特定分支1与特定分支2之间的差别

git diff xxx yyy:可以查看xxx分支与yyy分支之间的差别(xxx,yyy可以是本地分支也可以是远程分支)
  • 1

git status

查看当前状态:

git status:查看当前状态比如分支名、暂存区、本地仓库的修改情况
  • 1

git remote

git remote --verbose:显示本地仓库的远程仓库连接
git remote -v :显示本地仓库的远程连接
  • 1
  • 2

与远程仓库建立连接:

git remote add 远程仓库名  git@github.com:XXX/XXX.github.io.git :与远程仓库建立连接
  • 1

与远程仓库删除连接:

git remote remove 远程仓库名 
  • 1

git config

设置git配置

git config --global :对该用户的所有仓库的配置
git config --system :对本地所有用户的所有仓库的配置
  • 1
  • 2

常见的理解分析:

  1. git clone下来文件后会将此远程仓库命名为origin
  2. 远程仓库名/分支名:表示一个远程分支
  3. HEAD->xxx:表示当前在哪个本地分支上 ;远程仓库名/HEAD:表示远程仓库上的默认分支

变基rebase和合并merge:

对于两个分支存在提交分叉时,如何实现两个分支之间的合并?

在这里插入图片描述

git merge

git merge xxx:把xxx分支合并到当前的分支,此时会新创建一个merge commit
  • 1

git checkout master

git merge experiment结果为:(可以理解为master和experiment的共同祖先提交 到experiment的最新提交 重新再master分支上运行并提交建立一个新的提交快照)
在这里插入图片描述
会生成一个新的快照并提交

由于会出现额外的无用的commit提交所以出现了git rebase

git rebase:

git rebase xxx:追溯到当前分支和xxx分支的共同祖先提交,然后从该祖先提交开始到当前分支的最新提交所做的修改都在xxx分支上的最新提交基础上进行一遍,此时使得当前分支与xxx分支的共同祖先变为xxx分支上的最新提交
以上操作等价于:git rebase XXX 当前分支名即git rebase basebranch t
  • 1
  • 2

git checkout experiment

git rebase master 结果为:(可以理解为当前分支与master分支的共同祖先变为master分支的当前最新提交)

在这里插入图片描述

之后再git checkout master

git merge experiment 其结果与直接git checkout master ;git merge experiment一样

恢复操作:

  1. 恢复工作区且没有被暂存的文件(被删除、被修改的结果还没有被add)

    git checkout -- xxx:恢复没有暂存的文件xxx,恢复到上一次提交的时候
    
    • 1
  2. 恢复已经被暂存的文件(被删除、被修改的结果已经被add)

    //首先必须把该文件取消暂存
    git reset HEAD XXX:将XXX文件取消暂存
    //然后就可以使用git checkout -- xxx恢复到上一次提交的样子
    git checkout -- xxx
    
    • 1
    • 2
    • 3
    • 4
  3. 把工作区恢复到上一次提交并把暂存区清空

    git reset --hard HEAD	
    
    • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/747040
推荐阅读
  

闽ICP备14008679号