zoukankan      html  css  js  c++  java
  • git常用命令备忘

    一.分支相关

    1.基本命令

    # 列出所有本地分支
    $ git branch
     
    # 列出所有远程分支
    $ git branch -r
     
    # 列出所有本地分支和远程分支
    $ git branch -a
     
    # 新建一个分支,但依然停留在当前分支
    $ git branch [branch-name]
     
    # 新建一个分支,并切换到该分支
    $ git checkout -b [branch]
     
    # 新建一个分支,与指定的远程分支建立追踪关系
    $ git branch --track [branch] [remote-branch]
     
    # 切换到指定分支,并更新工作区
    $ git checkout [branch-name]
     
    # 切换到上一个分支
    $ git checkout -
     
    # 建立追踪关系,在现有分支与指定的远程分支之间
    $ git branch --set-upstream [branch] [remote-branch]
     
    # 合并指定分支到当前分支
    $ git merge [branch]
    # 删除分支
    $ git branch -d [branch-name]
     
    # 删除远程分支
    $ git push origin --delete [branch-name]
    $ git branch -dr [remote/branch]
     
    #拉取所有分支代码
    $ git fetch
     
    #提交分支代码
    $ git push <远程主机名> <本地分支名>:<远程分支名>
    【分支推送顺序的写法是<来源地>:<目的地>,所以git pull是<远程分支>:<本地分支>,而git push是<本地分支>:<远程分支>。】
     
    #暂存区
     

    $git stash save "name"

    $git stash list

    $git stash apply stash@{3}


    二、各种情况处理
    #.放弃某个分支还没提交的所有修改
    $ git checkout .
     
    #假如你merge的时候产生了很大的冲突,想先放弃某次merge
    $ git merge --abort 或
    $ git reset HEAD 或
    $ git checkout HEAD
     
    #在非目的分支上做了修改,想切换回目的分支
     
    1) 还未添加到暂存区/已添加到暂存区还未提交
    1.1新建临时分支,git checkout -b new_branch,这样改动会被带到新分支。然后把非目的分支的修改用git checkout --恢复。
    1.2先git stash,然后切换到目的分支,git checkout 【branch】,在目的分支git stash pop即可。这种方式最好理解,就是把改动先放到一个临时区域,让git先别管,到了正确的分支再拿出来。
     
    2)已提交到本地仓库
    这种情况就要有reset了,用git reset HEAD^撤销最近一次提交,如果有多次提交的话,查找到对应提交id进行reset就行。git默认的是mixed模式,即撤销暂存区,保留工作区。这样你再切分支也还能把改动带过去。当然加--soft也可以,这样能保留暂存区和工作区。
     
    3)已push到远程仓库
    如果很不幸你已经把误修改给push了,你需要用到revert命令,先用git log查找到你误提交的commitId,然后git revert commitId,产生一次逆向提交,来对冲掉之前的。之后再push到远程就可以了。
     
     #git忽略而不提交文件
    1)从未提交过的文件可以用.gitignore
    这种最简单,直接把想忽略的文件加入gitignore中忽略提交即可
     
    2)已经推送(push)过的文件,想从git远程库中删除,并在以后的提交中忽略,但是却还想在本地保留这个文件
    $git rm --cached pages/index.wxml 
     
    3)已经推送(push)过的文件,想在以后的提交时忽略此文件,即使本地已经修改过,而且不删除git远程库中相应文件
    $git update-index --assume-unchanged pages/index.wxml 
    如果要忽略一个目录,打开 git bash,cd到 目标目录下
    $git update-index --assume-unchanged $(git ls-files | tr ' ' ' ') 
     
     
     
     
  • 相关阅读:
    【经典数据结构】B树与B+树
    【经典算法】线性时间排序
    【经典算法】归并排序
    【经典算法】快速排序
    python模块之shelve
    python模块之pickle
    python模块之json
    python之序列化
    python模块之shutil和zipfile
    python模块之sys
  • 原文地址:https://www.cnblogs.com/LuckyWinty/p/9029900.html
Copyright © 2011-2022 走看看