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 ' ' ' ') 
     
     
     
     
  • 相关阅读:
    mysql修改数据表名
    HDU 5742 It's All In The Mind (贪心)
    HDU 5752 Sqrt Bo (数论)
    HDU 5753 Permutation Bo (推导 or 打表找规律)
    HDU 5762 Teacher Bo (暴力)
    HDU 5754 Life Winner Bo (博弈)
    CodeForces 455C Civilization (并查集+树的直径)
    CodeForces 455B A Lot of Games (博弈论)
    CodeForces 455A Boredom (DP)
    HDU 4861 Couple doubi (数论 or 打表找规律)
  • 原文地址:https://www.cnblogs.com/LuckyWinty/p/9029900.html
Copyright © 2011-2022 走看看