整理了一下工作中常用的 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分支推送到远程库对应的远程分支上
 
推荐阅读

Git 备忘录的更多相关文章

  1. git备忘录

    1.git: patch does not apply git apply --ignore-space-change --ignore-whitespace mychanges.patch 2.Ge ...

  2. 03-Git常用命令演示、冲突演示

    Git常用命令演示 Git的的思想其实和SVN还是蛮像的,可以参考之前svn文章一起加深了解. 新建一个user2目录,clone下代码. 修改readme.txt git status 可以看到re ...

  3. 《HelloGitHub》第 67 期

    兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. https://github.com/521xueweihan/HelloGitHu ...

  4. git 入门教程之备忘录[译]

    备忘录[译] 创建 | Create 克隆一个已存在的仓库 | Clone an existing repository git clone git@github.com:snowdreams1006 ...

  5. 使用git向github中添加项目并更新(备忘录)

    今天使用Git&github&ST3时,发现ST3不仅是git插件不能push成功,使用sublimegit插件也不行. 可能是没有掌握sublimegit的使用技巧,有待后续继续摸索 ...

  6. Git版本控制 备忘录

    安装Git: 在Linux上安装Git: sudo apt-get install git 在windows上安装Git: 从https://git-for-windows.github.io下载,然 ...

  7. git常用命令备忘录

    返回未修改状态 [git checkout . --没有的提交的,都返回到原来的状态  git clean -xdf 删除文件和目录] git checkout . && git cl ...

  8. Git命令备忘录

    目录 前言 基本内容 开始之前 基础内容 远程仓库 分支管理 前言 Git在平时的开发中经常使用,整理Git使用全面的梳理. 基本内容 开始之前 请自行准备好Git工具以及配置好Git的基本配置 基础 ...

  9. git常用命令/git 部分高级命令备忘录

    常用命令 克隆 - git clone  git@gitee.com:niunafei1/git_learning.git git 创建分支 - git checkout -b dev git 切换分 ...

随机推荐

  1. CUDA atomic原子操作

    CUDA的原子操作可以理解为对一个变量进行"读取-修改-写入"这三个操作的一个最小单位的执行过程,这个执行过程不能够再分解为更小的部分,在它执行过程中,不允许其他并行线程对该变量进 ...

  2. [Linux] ssh秘钥对免密码登陆

    准备两台linux服务器 a和b , 在a上使用ssh命令登陆b服务器 , 并且不用 输入密码 1.在a服务器上,比如是root用户 ,进去/root/.ssh目录 ,没有就创建, 就是进入家目录的. ...

  3. 浏览器兼容性之ECMAScript

    1 IE中不能操作TR标签的innnerHTML. 2 日期处理函数不一致. (1)IE 8- new Date().getYear()返回的是到当前日期到1900年的差值,FF返回的是当前的年. ( ...

  4. 使用XCA(X Certificate and key management)可视化项目经理SSL 凭证(4)--凭借自身的凭证管理中心的定义(Certificate Authority)签名证书申请

    随着XCA(X Certificate and key management)可视化项目经理SSL 证书系列文章(2)和(3)中.我们学习了怎样用XCA(X Certificate and key m ...

  5. HDU 1143 Tri Tiling(递归)

    意甲冠军:一些现有的1*2小盒子.求拼3*n多少个长方形的拼写. 思考: 因为它是一个递归式.肯定会遇到层的关系.仔细观察,研究发现,每层应设置2一层.(奇数层不能是矩形)而从显卡好最后一层的最后一战 ...

  6. JQuery采纳CSS实现DOM显示和隐藏要素

    今天参加了Code Review活动.阅读编写代码的同事,感到满足当前功能的实现,但是从长远来看,,无论角度还是从代码重用是来看显然不佳维修点. 有什么需要看的权利.通过选择不同的选项下拉框需求,为了 ...

  7. Nginx之Eclipse开发环境配置

    C开发的IDE很多,为什么使用Eclipse?原因: 1. 历史原因:使用eclipse时间长,比较熟悉. 2. 功能原因:使用eclipse查看源码,可以在各个函数与头文件间直接跳转.这是所谓号称& ...

  8. Centos上通过shell脚本实现数据库备份和还原

    最近有个这样的需求,通过shell脚本实现数据库备份还原,最后通过网上查询自己测试实现,将脚本分享给大家 1.数据库备份脚本 #!/bin/bash ds=`` list=`date +%Y`/`da ...

  9. WPF Button控件模板

     <Window x:Class="ControlTemplateDemo.MainWindow"        xmlns="http://schemas.m ...

  10. 解决WPF的ScrollViewer在使用触摸屏时,滑到尽头窗口抖动的情况

    原文:解决WPF的ScrollViewer在使用触摸屏时,滑到尽头窗口抖动的情况 wpf的ScrollViewer在触摸条件下 默认在尽头时会有一个窗口一起被拖动的FeedBack,但对用户的交互很不 ...