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

    基础操作

    git add . // 将文件添加到缓存区
    git status  // 查看状态
    git commit -m "注释内容"  //  将暂存区文件提交至版本库
    git log // 查看近期提交状态
    git branch // 查看分支
    git branch dev // 新建 dev 分支
    git checkout dev // 切换到 dev 分支
    git push -u origin 分支名称 // 第一次提交分支(推送到云端origin仓库中)
    //注意:必须切换到此子分支下才能提交!!!-u就表示第一次, 
     
    git merge 分支名称 // 必须先切换到主分支!!!然后在合并分支
    // 如果不下心在master分支上写了代码,直接git checkout -b test 就能将修改的文件分配到test分支上,然后在 git add 等操作

    日志

    git log // 查看历史记录
    git log -p // 查看详细历史
    gi log --stat // 查看简要统计
    git show // 查看当前的 commit 的改动内容
    git show comiitID // 查看某个具体的 commit 的改动内容
    git show comiitID a.txt // 看指定 commit 中的指定文件
    git diff // 比对工作目录和暂存区
    git diff --staged // 比对暂存区和上一条提交
    git diff HEAD // 比对工作目录和上一条提交
    git reflog // 查看记录的每一条指令

    clone分支

    git checkout dev // 切换到 dev 分支
    git checkout -b dev // 创建并立即切换到dev子分支
    
    git branch -al // 查看所有本地仓库分支和远程分支
    git checkout -b 本地demo分支 origin/远端demo分支 // 检出远程的demo分支到本地

    推送分支

    git push origin 本地分支:远程分支 // 提交本地分支到远程分支
    git push origin :demo // 推送本地的空分支(冒号前面的分支)到远程origin的demo(冒号后面的分支)(没有会自动创建)

    删除分支

    git branch -d bug // 删除本地的bug分支
    git push origin --delete demo // 删除远程分支demo
    git强制覆盖
    git fetch --all
    git reset --hard origin/master
    git pull

    临时需要打包,暂时将本地更改推到暂存区,打包完成后恢复之前的本地更改

    git stash // 「藏匿」临时存放工作目录的改动
    git stash // 将新建的文件也临时存放
    git stash apply // 可以保留 stash 空间,避免 pop 完产生奇怪的问题
    git stash pop // 恢复,并三处这次stash

    变基

    rebase——在新位置重新提交,展开来说就是,把你指定的 commit 以及它所在的 commit 串,以指定的目 标 commit 为基础,依次重新提交一次。

    git checkout branch1
    git rebase master

    另外,在 rebase 之后,记得切回 master 再 merge 一下,把 master 移到最新的 commit :

    git checkout master
    git merge branch1  // 重要的!!
    git rebase --help // 查看帮助,里面有一张图


    多次commit未push

    git add a.txt // 更新一个文件内容
    git commit // commit 到暂存区,没有push
    // 重新编辑 a.txt
    git add a.txt // 更新一个文件内容
    git commit --amend // 该命令并不会再生成一个commit,而是在之前的commit修改

    amend 就是重新修改 commit

    删除提交错误的push

    错误提交到了版本库,此时无论工作区、暂存区,还是版本库,这三者的内容都是一样的,这个时候,我们必须撤销版本库的修改才能解决问题!

    git reset有三个选项,--hard、--mixed、--soft

    // 仅仅只是撤销已提交的版本库,不会修改暂存区和工作区
    git reset --soft 版本库ID
    //仅仅只是撤销已提交的版本库和暂存区,不会修改工作区
    git reset --mixed 版本库ID
    //彻底将工作区、暂存区和版本库记录恢复到指定的版本库
    git reset --hard 版本库ID

     具体步骤:

    git log // 查看log日志,复制撤销的commitID
    git reset --hard commitID // 强制撤销, soft hard mixed 视情况而定
    git push origin HEAD --force // 推送到远端

    其他操作

    撤销错误添加到暂存区里的文件 命令行 : git rm --cache 文件名

    上面代码仅仅删除暂存区的文件而已,不会影响工作区的文件 

    删除暂存区和工作区的文件 命令行:git rm -f 文件名

     

    出错的内容在你自己的 branch,修改已经push了的commit信息注释

    • step1:使用【git commit --amend】命令,会进入到vim编辑器。
    • step2:输入【i】,即进入编辑模式,此时编辑提交信息。
    • step3:编辑好之后,按键【Esc】,输入【:wq】,即保存和退出。
    • step4:输入【git push -f】强制提交。
    • 操作完之后,再看提交记录,即可看到修改的注释信息。

    出错的内容已经合并到 master,恢复一个版本

    git revert HEAD^

    上面这行代码就会增加一条新的 commit ,它的内容和倒数第二个 commit 是相反的,从而和倒数第二个 commit 相互抵消,达到撤销的效果。

    git revert HEAD //撤销最近一次提交
    git revert HEAD~1 //撤销上上次的提交,注意:数字从0开始
    git revert 0ffaacc //撤销0ffaacc这次提交

    git追踪文件夹/文件名称更新

    git mv -f oldfolder newfolder
    git add -u newfolder (-u选项会更新已经追踪的文件和文件夹)
    git commit -m "changed the foldername whaddup"
    git push origin yourBranch

     

    git强制更新并覆盖本地修改

    1.git fetch --all //从远程拉取最新的代码 不merge
    
    2.git reset --hard origin/develop //使用指定分支的代码(此处develop)强制覆盖代码
    
    3.git pull //从远程拉取最新的代码 自动merge

    git工作流

  • 相关阅读:
    弱爆程序员的特征值
    快捷渐变效果
    做事务性的发布数据库日志会越来越大
    判断MS SQLSERVER临时表是否存在
    SQLite实现加密
    CentOS6.4下安装TeamViewer8
    安装CDT
    CentOS中安装Courier New字体
    VS2012的Windows程序不显示DOS窗口
    log4cpp安装使用
  • 原文地址:https://www.cnblogs.com/houfee/p/10131607.html
Copyright © 2011-2022 走看看