zoukankan      html  css  js  c++  java
  • Git 备忘录

    整理了一下工作中常用的 Git 操作,持续更新中...
     
    merge单个文件
    例如 B分支想要合并A分支的某个文件
    首先,我们切换到B分支  git checkout branch B
    之后,我们checkout A 分支的a文件,git checkout --patch  A  a路径 
    最后,弹出修改确认提示:
    Apply this hunk to index and worktree [y,n,q,a,d,/,K,g,e,?]?
    在弹出的都选  y 即可。
    如果不想应用更改的,在弹出的都选 n 即可。
    最后提交代码完成更新合并同步。
     
    撤销上一次操作
    git reset --hard HEAD^
    HEAD^的意思是上一个版本,也可以写成HEAD~1
    如果你进行了2次commit,想都撤回,可以使用HEAD~2
    参数:
    --mixed 
    不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
    这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
    --soft  
    不删除工作空间改动代码,撤销commit,不撤销git add . 
    --hard
    删除工作空间改动代码,撤销commit,撤销git add . 
    注意完成这个操作后,就恢复到了上一次的commit状态。
     
    撤销 commit 操作,但保留代码
    git reset --soft HEAD^
    仅仅是撤回commit操作,代码仍然保留
     
    查看文件修改
    git log --name-status 每次修改的文件列表, 显示状态
    git log --name-only 每次修改的文件列表
    git log --stat 每次修改的文件列表, 及文件修改的统计
    git whatchanged 每次修改的文件列表
    git whatchanged --stat 每次修改的文件列表, 及文件修改的统计
    git show 显示最后一次的文件改变的具体内容
    git show -5 显示最后 5 次的文件改变的具体内容
    git show commitid 显示某个 commitid 改变的具体内容
     
    给本地和远程仓库重命名
    1.重命名本地分支
    git branch -m new-name #如果当前在要重命名的分支
    git branch -m old-name new-name #如果当前不在要重命名的分支
    2.删除远程旧名称分支并且push新名称分支
    git push origin :old-name new-name
    3.关联新名称的本地分支和远程分支
    git push origin -u new-name
     
    修改远程仓库地址
    git remote set-url origin [url]
     
    本地分支关联远程仓库上游分支
    git branch --set-upstream-to=origin/remote_branch  your_branch
     
    分支重命名
    1. 本地分支重命名(还没有推送到远程)
    git branch -m oldName newName
    2. 远程分支重命名(已经推送远程-假设本地分支和远程对应分支名称相同)
    a. 重命名远程分支对应的本地分支
    git branch -m oldName newName
    b. 删除远程分支
    git push --delete origin oldName
    c. 上传新命名的本地分支
    git push origin newName
    d. 把修改后的本地分支与远程分支关联
    git branch --set-upstream-to origin/newName
     
    commit 规范
    feat:新功能(feature)
    fix:修补bug
    docs:文档(documentation)
    style: 格式(不影响代码运行的变动)
    refactor:重构(即不是新增功能,也不是修改bug的代码变动)
    test:增加测试
    chore:构建过程或辅助工具的变动
     
    合并commit
    合并commit的简便方法,就是先撤销过去5个commit,然后再建一个新的。
    $ git reset HEAD~5
    $ git add .
    $ git commit -am "Here's the bug fix that closes #28"
    $ git push --force
     
    git tag
    git tag <name>就可以打一个新标签:
    用命令git tag查看所有标签:
    默认标签是打在最新提交的commit上的
    也可以找到历史提交的commit id,然后打上
    还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:
    git tag -a v0.1 -m "version 0.1 released" 1094adb
    用命令git show <tagname>可以看到说明文字:
     
    修改 commit 注释内容
    顺便说一下,如果commit注释写错了,只是想改一下注释,只需要:
    git commit --amend
    此时会进入默认vim编辑器,修改注释完毕后保存就好了
     
    Git基本常用命令
    mkdir XX
    创建一个空目录 XX指目录名
    pwd
    显示当前目录的路径
    git init
    把当前的目录变成可以管理的git仓库,生成隐藏.git文件
    git diff  XX
    查看XX文件修改了哪些内容
    git reset
    –hard HEAD^ 或者 git reset  –hard HEAD~ 回退到上一个版本 (如果想回退到100个版本,使用git reset –hard HEAD~100 )
    cat XX
    查看XX文件内容
    git reflog
    查看历史记录的版本号id
    git checkout — XX 
    把XX文件在工作区的修改全部撤销
    git remote add origin https://aaa
    关联一个远程库
    git push –u origin master
    第一次要用-u 以后不需要,把当前master分支推送到远程库
     
    git branch –d dev
    删除dev分支
    git branch -D dev
    删除未合并过的dev分支
    git stash
    把当前的工作隐藏起来 等以后恢复现场后继续工作
    git stash list
    查看所有被隐藏的文件列表
    git stash apply
    恢复被隐藏的文件,但是内容不删除
    git stash drop
    删除文件
    git stash pop
    恢复文件的同时 也删除文件
    git push origin master
    把master分支推送到远程库对应的远程分支上
     
    推荐阅读

  • 相关阅读:
    [LeetCode] Min Stack
    [LeetCode] Find Minimum in Rotated Sorted Array
    [LeetCode] Maximum Product Subarray
    [Jobdu] 题目1504:把数组排成最小的数
    [Jobdu] 题目1544:数字序列区间最小值
    Python2.3-原理之语句和语法
    Python2.5-原理之模块
    Vim2.1-Vim简明教程【CoolShell】【非原创】
    Python2.6-原理之类和oop(下)
    QT1.1-与Opencv的hello world
  • 原文地址:https://www.cnblogs.com/dora-zc/p/11109125.html
Copyright © 2011-2022 走看看