【Git123】Git
https://www.cnblogs.com/jager/p/6684637.html
四、git工作原理
这边文章介绍的不错 Git from the Bottom Up
六、git常用命令
- workspace: 本地工作目录
- index:缓存区域,临时保存本地改动
- local repository: 本地仓库
- remote repository:远程仓库
- == git配置 ==
- git config --list //查看当前git的配置,Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)
- == 查看信息 ==
- git log //查看提交记录
- git status //查看修改状态
- git diff //查看详细修改内容
- git show //显示某次提交的内容
- git branch //列出所有本地分支
- git tag //列出所有tag
- git reflog //显示当前分支的最近几次提交
- == 新建代码库 ==
- git init //在当前目录新建一个Git代码库
- git init [project-name] //新建一个目录,将其初始化为Git代码库
- git clone [url] //下载一个项目和它的整个代码历史
- == 增加/删除 ==
- git add [file1] [file2] ... //添加指定文件到暂存区
- git add [dir] //添加指定目录到暂存区,包括子目录
- git add . //添加当前目录的所有文件到暂存区
- git rm [file1] [file2] ... //删除工作区文件,并且将这次删除放入暂存区
- git mv [file-original] [file-renamed] //改名文件,并且将这个改名放入暂存区
- == 代码提交 ==
- git commit -m [message] //代码提交到本地仓库
- git commit [file1] [file2] ... -m [message] //提交指定文件到本地仓库
- git commit -a //提交工作区自上次commit之后的变化,直接到仓库区
- git commit -v //提交时显示所有diff信息
- git commit --amend -m [message] //使用一次新的commit,替代上一次提交,如果代码没有任何新变化,则用来改写上一次commit的提交信息
- == 分支管理 ==
- git branch -r //列出所有远程分支
- git branch -a //列出所有本地分支和远程分支
- git branch [branch-name] //新建一个分支,但依然停留在当前分支
- git checkout -b [branch] //新建一个分支,并切换到该分支
- git checkout [branch-name] //切换到指定分支,并更新工作区
- git checkout - //切换到上一个分支
- git merge [branch] //合并指定分支到当前分支(如master)
- git branch -d [branch-name] //删除分支
- git push origin --delete [branch-name] //删除远程分支
- git branch -dr [remote/branch] //删除远程分支
- == 远程同步 ==
- git fetch [remote] //下载远程仓库的所有变动,到index
- git pull //更新本地仓库至最新改动,到workspace
- git remote -v //显示所有远程仓库
- git remote show [remote] //显示某个远程仓库的信息
- git remote add [shortname] [url] //增加一个新的远程仓库,并命名
- git pull [remote] [branch] //取回远程仓库的变化,并与本地分支合并
- git push origin master //推送至master分支
- git push [remote] [branch] //上传本地指定分支到远程仓库
- git push [remote] --force //强行推送当前分支到远程仓库,即使有冲突
- git push [remote] --all //推送所有分支到远程仓库
- == 撤销 ==
- git reset [file] //重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
- git reset --hard //重置暂存区与工作区,与上一次commit保持一致
- git checkout //从index恢复到workspace
- git checkout . //恢复暂存区的所有文件到工作区
- git checkout -- files //文件从index恢复到workspace
- git checkout HEAD -- files //文件从local repository复制到workspace
- == 冲突解决 ==
- git diff //对比workspace与index
- git diff HEAD //对于workspace与最后一次commit
- git diff <source_branch> <target_branch> //对比差异
- git add <filename> //修改完冲突,需要add以标记合并成功
七、git使用流程规范【重要】
下面是ThoughtBot 的Git使用规范流程,推荐使用:
Create a local feature branch based off master.
Rebase frequently to incorporate upstream changes.
Resolve conflicts. When feature is complete and tests pass, stage the changes.
When you've staged the changes, commit them.
Write a good commit message. Example format:
If you've created more than one commit, use
Share your branch.
Submit a GitHub pull request. Ask for a code review in the project's chat room. |
总结大致如下:
- 新建分支
- 提交分支
- 撰写commit信息
- 与主干同步
- 合并commit
- 推送到远程仓库
- 发出pull request,请求别人进行代码review
【Git123】Git的更多相关文章
- 【经验之谈】Git使用之TortoiseGit配置VS详解
前言 上一篇<[经验之谈]Git使用之Windows环境下配置>: 安装 配置和使用 后记 关于vs中使用git网上的教程大家也可以找到,我当时配置的时候也是按照网上找的教程一步一步来的, ...
- 【转】Git如何Check Out出指定文件或者文件夹
[转]Git如何Check Out出指定文件或者文件夹http://www.handaoliang.com/a/20140506/195406.html 在进行项目开发的时候,有时候会有这样的需求那就 ...
- 【转】Git超实用总结,再也不怕记忆力不好了
[转]Git超实用总结,再也不怕记忆力不好了 欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯工蜂发表于云+社区专栏 Git 是什么? Git 是一个分布式的代码管理容器,本地和 ...
- (转)【经验之谈】Git使用之TortoiseGit配置VS详解
原文地址:http://www.cnblogs.com/xishuai/p/3590705.html 前言 上一篇<[经验之谈]Git使用之Windows环境下配置>: 安装 配置和使用 ...
- 【译文】Git merge 和 Git rebase比较
[译文]Git merge 和 Git rebase比较 原创: 胡江华 胡同学和朋友们的成长日记 2017-03-22 git rebase 这个命令经常被人认为是一种Git巫术,初学者应该避而远之 ...
- 【61】git项目实战的步骤总结
1.新建分支的步骤 git pull git checkout -b 分支号(task的后面的代号) 2.提交代码到远程仓库的步骤 git add . git commit -m "分支号+ ...
- 【原创】Git删除暂存区或版本库中的文件
0 基础 我们知道Git有三大区(工作区.暂存区.版本库)以及几个状态(untracked.unstaged.uncommited),下面只是简述下Git的大概工作流程,详细的可以参见本博客的 ...
- 【转】Git 安装和使用教程
git 提交 全部文件 git add . git add xx命令可以将xx文件添加到暂存区,如果有很多改动可以通过 git add -A .来一次添加所有改变的文件.注意 -A 选项后面还有一个 ...
- 【git2】git+码云+webStrom
在[git1]中介绍了Git的安装.webstrom配置Git和GitHub.GitHub项目上传下载的方法. 这篇将一下在[git1]步骤(一)基础上webstorm配置码云 实现项目的上传下载. ...
随机推荐
- easyui修改提示窗
1.将文本框type修改成 password 2.easyui中的js
- 解决 iframe 后退不是主页面后退(浏览器 history)问题
前言:项目中的主页面里有 iframe,切换 iframe 的 src 地址之后,再点浏览器的回退之后,会导致 iframe 里面回退,而不是主页面回退. 问题 浏览器机制的原因,在 iframe 导 ...
- Vue之组件使用(一)
这仅仅是个人为了防止忘记做的笔记而已,仅供参考,有不对的地方请纠正 组件这种东西用来封装多次使用的控件还是很有用处的,我还是挺喜欢这种模式,优化了前端的工作,写个组件也比较简单.下次有时间记录一下样式 ...
- 面向对象设计模式_享元模式(Flyweight Pattern)解读
场景:程序需要不断创建大量相似的细粒度对象,会造成严重的内存负载.我们可以选择享元模式解决该问题. 享元抽象:Flyweight 描述享元的抽象结构.它包含内蕴和外蕴部分(别被术语迷惑,这是一种比较深 ...
- HDU3622(二分+2-SAT)
Bomb Game Time Limit: 10000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- 排序算法(3)--Insert Sorting--插入排序[3]--Shell Sort--希尔排序
1.基本思想 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序:随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止. 2.实现原理 对于n ...
- JTS基本概念和使用
简介 JTS是加拿大的 Vivid Solutions公司做的一套开放源码的 Java API.它提供了一套空间数据操作的核心算法.为在兼容OGC标准的空间对象模型中进行基础的几何操作提供2D空间谓词 ...
- Java虚拟机(二)对象的创建与OOP-Klass模型
前言 在前一篇文章中我们学习了Java虚拟机的结构原理与运行时数据区域,那么我们大概知道了Java虚拟机的内存的概况,那么内存中的数据是如何创建和访问的呢?这篇文章会给你答案. 1.对象的创建 对象的 ...
- 第一篇 Windows docker 概述
本人行业属于智能制造,偏向工厂应用,客户端程序全部是.Net 的 WinForm:本系统的后台是.Net,多系统交互的有java的:因系统发布效率问题,想采用docker Windows 的生产力环境 ...
- 8.1、包,__init__.py,
包: 为了组织好模块,将多个模块组合为一个包,所以包用于存放python模块 包通常是一个文件夹,当文件夹当作包使用时,文件夹需要包含__init__.py文件 __init__.py的内容可以为空, ...