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

     ——————    常用   ——————

    在一个目录里初始化git  并关联到远程

    mkdir gitTest
    cd gitTest
    git init // 把此目录设为git管理
    git remote add origin https://XXXXXX.git // 将本地仓库与远程仓库关联同步
    git diff // 查看修改历史
    git diff 文件名 // 比对这个文件修改了哪些代码

    恢复重置

    git checkout -- filename // 丢弃工作区的改动
    git checkout . // 丢弃所有
    // 以上:放弃掉所有还没有加入到缓存区git add的修改,不会删除新加的文件
    git clean -df // 放弃并删除所有新增的文件和新增的文件夹 用git status可查看到的新加的
    git reset --hard [目标版本号] // 恢复重置到这个版本
    git reset --hard HEAD^:回退到上一版
    git reset --hard HEAD^^:回退到倒数第二版;
    git rest --hard 3628164:回退到commit id为3628164的版本;

    恢复远程的push

    git log // 记住要恢复的上个版本号
    git reset --soft xxxxxxxxx // 上个版本号 soft 为刚刚修改代码还在
    git log // 检查是否恢复
    git push origin master –force // 远程恢复到上个版本

    本地add . 后,想撤回? 用 git reset HEAD  

    本地commit 后,想撤回? 用 git reset --soft HEAD^ 

    所有工作区提交 到远程

    git status // 查当前工作状态
    git add . // 添加所有工作状态到本地缓存
    git commit -m 'XXX' // 提交所有到本地仓库

    git pull origin master // 提交远程前,先拉一下
    git push origin master // 提交到远程

     分支操作及合并

    git branch // 查看当前及所有分支
    git branch XXX // 新建分支XXX
    git checkout XXX // 切换分支XXX
    git checkout -b XXX // 新建分支,并切换到XXX分支
    git checkout -b XXX origin/XXX // 新建分支,并切换到XXX分支,同时远程拉取此分支
    git merge master // 合并分支master 到当前分支 git branch -D XXX // D为强行删除分支XXX(不管是否合并过) git push origin XXX // 在远程新建分支XXX并提交

    // 删除本地分支和远程分支
    git branch -a // 先查看所有分支(本地 和 远程)
    git remote update origin --prune // -a 时不同步远程,使用此即可
    git push origin --delete dev // 删除远程分支
    git branch -d dev // 删除本地分支

    分支日志

    git log // 查历史某版本号以后,如:commit db10740d1537fa164d0288a61fae95ac72
    git log --pretty=oneline // 一行展示 清楚方便

     合并时遇到冲突想取消操作,恢复index,用git merge --abort     https://segmentfault.com/q/1010000000140446

    远程

    git remote -v // 查看项目远程git地址
    git checkout -b XXX origin/XXX // 同时在本地远程建分支XXX
    
    git branch --set-upstream XXX origin/YYY // XXX 对 YYY
    git branch --set-upstream-to=origin/master // master 对 master
    git branch --unset-upstream master // 取消此分支关联跟踪master
    // 建立关联默认后,可简写git pull 和 git push
    git remote add origin https://XXXXXX.git // 将本地仓库与远程仓库关联同步

    git remote set-url origin https://xxxxxx.git // 更改远程地址,当有变动时
    git remote rm origin // 删除远程地址
    git remote add origin https://XXXXXX.git //
    将本地仓库与远程仓库关联同步
    
    

    其他

    // 正在还未完成的 暂存一下
    git stash // 详细
    g
    it stash pop // 恢复
    git diff // 查看当前改动了哪些
    git log --graph // 倒序查看提交日志 即git commit -m 'xxx' 备注过的 退出按Esc q

    加入服务器的某个分支删除了,但是本地通过git branch -a还是可以看得到,感觉很烦,通过以下命令就可以更新分支的情况。

    git fetch origin --prune

    通常在一段时间的开发之后,本地会遗留很多无用的分支,且很多分支在远程仓库中已删除,这个时候,我们就需要将本地的无用分支清理一下,以保持本地仓库的整洁

    git remote show origin

    传输用https非ssh时,每次操作总要账号密码

    git config --global credential.helper store
    git pull // 这回输了账号密码会保存本地,以后pull就不用输入账号密码了

    Tag 批量删除操作:

            在Git v1.7.0 之后,可以使用这种语法删除远程分支:
                    $ git push origin --delete <branchName>
            删除tag这么用:
                    git push origin --delete tag <tagName>

       批量删除Tag :git tag -l | awk '/tag_20180[1-5]{1}/{print}' | xargs git push origin --delete tag

        注解:git tag -l 是查看所有本地tag 。
                    “|” 管道,上一条命令的输出,作为下一条命令参数,如 echo 'yes' | wc -l
                    awk 行处理器: 依次对每一行进行处理,然后输出。
                    awk '/tag_20180[1-5]{1}/{print}'  : awk 中的正则表达式使用。awk命令
                    xargs : 是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具 xargs命令
       整个命令的理解就是:先通过 git tag -l 列出所有本地tag,然后用 awk 做正则匹配到需要删除的 tag号。将匹配到的 tag号 用 xargs 传给 git push origin --delete tag 命令。【git push origin --delete tag xxx】

    批量删除分支:git branch --all | awk '/branch_20180[1-5]{1}/{print}' | xargs git push origin --delete

    新手备忘

    https://github.com/lililuni/GitStudy/blob/master/%E5%88%86%E6%94%AF%E7%AE%A1%E7%90%86.md

  • 相关阅读:
    我容易么?
    意译和音译
    请教博客园高手:msn老是掉线的问题
    超市里最安全的食品
    两类人
    只要牵了手,就请不要轻易的说分手
    Palm Treo 650 .VS. Dopod P800
    强烈推荐一健康食品:紫红薯
    年底三篇
    奶奶,走好!
  • 原文地址:https://www.cnblogs.com/xiangsj/p/6815383.html
Copyright © 2011-2022 走看看