Git 通用命令-纪录篇二

207 阅读5分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天,点击查看活动详情

目录

Git常用命令

git stash

git reset

git checkout

git branch

git merge

git rebase

git remote

git fetch

git pull

git push

git flow

Git常用命令

git stash

使用场景

git stash,在我们的开发工程中,非常有用.比如我们现在正在dev分支开发功能,此时,测试反馈说,我们线上app出现了重要bug,需要及时处理.dev分支功能还未开发完成,虽然你可以把代码提交到dev本地仓库 或者远程仓库上.但是相对来说,不算是好的解决方案.

此时git stash就可以帮大忙了.

我们可以使用git stash,把我们开发内容直接暂存到 堆栈区,并恢复工作目录以匹配HEAD提交.可以理解为git stash,把我们的内容原封不动的放在里,独立的中间站.也会清除我们workspace工作区修改的内容.

这样我们就可以轻松去处理问题.然后,处理完成后,不管在哪个分支上,我们都可以通过git stash apply或者git stash pop命令,来取出我们之前存放的内容,并同步到当前的分支上.是不是很方便呢,下面我们来详细的介绍一下

常用命令

  • git stash

    切记git stash,只能提交未被git commit之前的代码. 你可以直接使用 git stash,也可以在使用过git add后,使用git stash.执行后如下所示 Saved working directory and index state WIP on master: c6cc106 添加ts.sh文件

  • git stash save

    作用和git stash是一样的,区别就是加了注释 eg: git stash save "测试"执行命令后,如下所示 stash@{0}: On master: 测试

  • git stash list

    查看当前stash中存储的记录 eg: git stash list

    stash@{0}: WIP on master: 7032b13 测试,使用了 commit 之后
    ,再使用git stash 是否可以生效
    stash@{1}: WIP on master: c6cc106 添加ts.sh文件
    
  • git stash pop

    将当前stash中的内容弹出,并应用到当前分支对应的工作目录上。也就是无论你此时在项目中哪一层级的目录下,执行了git stash pop后,都会把存在stash中,最新的内容,同步到当前分支工作目录
    注意: 该命令将堆栈中最近保存的内容删除(栈是先进后出) eg: git stash pop + git stash pop stash@{n}来取出想要的内容 n:可以通过git stash list 命令来获取.

  • git stash apply

    这个命令功能和git stash pop命令是相同,区别在于它不会将内容删除与堆栈中,可以重复使用 eg: git stash aplly + git stash apply + stash@{n}来取出想要的内容 n:可以通过git stash list 命令来获取.

  • git stash drop

    git stash drop stash@{n}

    将指定index的储藏从储藏记录列表中删除

  • git stash clear

    清除堆栈中的所有内容

  • git stash show

    git stash show stash@{n} 查看指定的stash和当前目录差异,当然git stash show,就是查看最新的stash和当前目录差异

  • git stash branch 分支名字

    从最新的stash创建分支。 eg: git stash branch test

git reset

git reset 主要用于本地仓库版本回退

  • git reset --mixed
  • git reset --soft
  • git reset --hard 对于这三种模式,我这里就不一一讲解了,Git Reset 三种模式,这篇文章讲的很详细,喜欢的可以看看.

git checkout

    # 以当前分支的head为基准,创建dev分支
    $ git checkout -b dev
    # 从远程dev分支取得到本地分支dev 
    $ git checkout -b dev origin/dev 
    # 切换到dev分支
    $ git checkout dev 
    # 放弃当前对文件file_name的修改 
    $ git checkout dev file_name 
    # 取文件file_name的 在commit_id是的版本。commit_id为 git commit 时的sha值。 
    $ git checkout commit_id file_name

    # 命令把test从HEAD中签出. 
    $ git checkout -- test 
    #这条命令把 当前目录所有修改的文件 从HEAD中签出并且把它恢复成未修改时的样子. 
    #注意:在使用 git checkout 时,如果其对应的文件被修改过,那么该修改会被覆盖掉。
    $ git checkout . 

git branch

  • git branch

    获取本地仓库分支. * dev master * 指向的是当前的分支

  • git branch -a

查看远程本地仓库的分支

  • git branch -r

    查看远程仓库分支

  • git branch branch_name

    创建分支,branch_name分支名字

  • git branch -m dev change_dev

    修改dev分支名字为change_dev

  • git branch -d branch_name

    删除本地分支

  • git push origin --delect dev

    删除远程分支

  • git branch -v dev

    查看dev分支最后一次提交记录

  • git branch -merged

    查看哪些分支合并入当前分支

  • git branch -no-merged

    查看哪些分支未合并入当前分支

git merge

  • git merge branch_name

    把需要合并的分支,合并到当前分支

git rebase

# 详解git rebase,让你走上git大神之路

git remote

  • git remote -v

     origin https://gitee.com/hot_night/article_materials.git (fetch)
     origin https://gitee.com/hot_night/article_materials.git (push)
     origin: 远程仓库的别名
     fetch: 用于用户拉取代码
     push: 用于用户推送代码
    
  • git remote add <name> <url>

    默认我们添加远程仓库,使用的命令是 git remote add origin https://url

当我们想把自己的仓库.设置多个远程仓库的时候.可以使用以下方式

  • git remote add code https://urldddd
    • 这样我们在提交的时候,修改成
    • git push code master
  • git remote set-url --add origin https://url
    • 这样提交,就正常提交就行
    • git push origin master

git fetch

git fetch

同步远程仓库的代码分支到本地仓库

git pull

git pull origin master

把远程仓库代码同步到本地代码

git pull origin master:dev

把远程master分支同步到本地dev分支

git push

git push origin master

推送到远程master分支上

git push --force origin master

强制把本地分支代码,推送到远程master仓库

参考文章

Git Reset 三种模式

Git 命令

详解git rebase,让你走上git大神之路