Git简易参考手册
如果用过mercury(HG),那么理解Git的运作方式就轻松多了。两者是相同的分布式版本管理工具,只是某些功能有着细微的差别 - Git的管理粒度更加细腻,因此操作上也比HG复杂一点。例如,修改文件并提交,hg会自动跟踪到,并不需要你去手动add,但是在git里,无论新增还是修改,都必须add相应的文件才可以commit.这样概念上可以保持一致性(计算机的美学)。
安装和创建版本库:
sudo apt-get install git
创建全新仓库:
mkdir new_repo
cd new_repo
git init
此时即可创建一个全新的仓库。命令执行后,可以看到.git的隐藏文件夹,这是跟踪版本仓库的数据库。
远程克隆仓库:
git clone git@github.com:homer_simpson/repo_one.git
执行后会在本地创建同名文件夹repo_one
基本操作:
git reflog // git历史操作
git add <filename> // 新增filename 到版本库,或者修改了filename,提交到暂存区
git rm <filename> // 从版本库移除filename
git commit -m "comment" // 提交暂存区的内容到changeset,如果修改没有add/rm到暂存区,则提交不了修改
git log // 查看历史提交,完整信息
git log --pretty=oneline // 查看历史提交,单行显示
git log --graph // 分支图形方式显示LOG
git log --abbrev-commit // 缩写方式显示LOG
git diff (<filename>) // 查看未add/rm的修改内容
git diff HEAD -- readme.txt // 查看已提交的修改内容
git status // 查看文件状态,新增/修改/删除,工作区/暂存区
git checkout -- <filename> // 撤销修改 - 修改但未添加到暂存区
git reset HEAD <filename> // unstage,暂存区撤销回工作区
git reset --hard HEAD^|<commit id> // 修改HEAD指针到新位置(等效于撤销已提交的修改,放弃commit id后的所有修改)
HEAD代表当前指针,HEAD^前一个版本,HEAD^^往前第二个版本,HEAD~50往前50个版本
分支操作:
GIT管理系统里,每个分支对应一个指针指向当前分支的头部节点,HEAD通过指向分支指针从而指向某一分支的头部节点。
master分支是始终存在的。
如无特殊说明,merge分支优先使用fast-forward模式,如果不能FF,则用普通的merge
merge冲突时,Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,此时直接编辑文件,add 文件并commit
git branch // 查看分支
git branch <branch name> //创建分支
git branch -d <branch_name > // 删除分支
git branch -D <branch_name> // 强制删除分支(一般当这个分支没有merge到其他分支而被丢弃时)
git checkout <branch_name> // 切换分支
git checkout -b <branche_name> // 创建分支并切换过去
git merge <branch_name> // 将branch_name merge到当前分支,包括合并文件,add文件+commit
git merge -m "comment" <branch_name> // 为merge的commit添加注释
git merge --no-ff -m "comment" <branch_name> // 禁用ff模式
工作区暂存:
git stash // 当前分支的工作区内容暂存起来。此时git status是干净的
git stash list // 列出暂存区
git stash apply <stashname> // 恢复工作区
git stash drop <stashname> // 删除stash列表项
git stash pop // 恢复stash顶端并删除
标签管理;
git tag // 查看标签
git tag <tag_name> // 在当前分支当前头打上标签
git tag <tag_name> <commit id> // 在某个commit上打上标签
git show <tag_name> // 显示标签对应commit的内容
git tag -a <tag_name> -m "blablabla..." //添加标签信息
git tag -d <tag_name> // 删除本地标签
git push origin <tag_name> // 推送本地标签
git push origin --tags // 推送本地所有标签
git push origin :refs/tags/<tag_name> //删除远程标签
远程协作:
有两个基本操作:建立远程和本地仓库的关联,建立远程仓库分支和本地仓库分支的关联
git remote add origin git@github.com:homer_simpson/repo_one.git // 创建远程仓库名字,即表示创建本地仓库和远程仓库的连接。origin是约定俗成的远程仓库的名字
git remote // 查看远程仓库
git remote -v // 查看远程仓库的详细信息
在某一个分支下git push/git pull 默认操作对象是当前分支,如果当前分支没有和远程分支建立联系,则出错
git clone操作,会自动创建本地master分支,并且和远程的master分支建立联系
git remote方式关联后,须手动关联master分支,例如git push -u origin master是建立关联并push
git branch --set-upstream branch1 origin/branch1 // 建立本地分支和远程分支的联系
git checkout -b branch1 origin/branch1 // 本地创建和远程分支对应的分支,因为clone时不会创建除了master之外的其他分支
Git系统配置:
git config --global user.name "Your Name" //设置名字
git config --global user.email "email@example.com"// 设置邮箱地址
git config --global color.ui true // 显示不同的颜色
git config --global alias.st status // 配置别名
可在根工作区创建.gitignore,配置GIT不跟踪的文件,但是可用命令git add -f <file_name>强行添加, git check-ignore -v <file_name>可以检查当前文件是否被过滤。
.git/config保存全局配置。
Git简易参考手册的更多相关文章
- Git命令参考手册(文本版)
git init # 初始化本地git仓库(创建新仓库) git config --global user.name "xxx" # 配置用户名 git config --glob ...
- Git命令参考手册(转)
git init # 初始化本地git仓库(创建新仓库) git config --global user.name "xxx" # 配置用户名 git config --glob ...
- git 命令参考手册 git中文命令参考手册大全
git init # 初始化本地git仓库(创建新仓库)git config --global user.name "xxx" # 配置用户名git config --global ...
- Git命令参考手册
git init # 初始化本地git仓库(创建新仓库) git config --global user.name "xxx" # 配置用户名 git config --glob ...
- [转帖]git命令参考手册
git init # 初始化本地git仓库(创建新仓库) git ...
- git 命令参考手册
你的本地仓库由 git 维护的三棵“树”组成.第一个是你的 工作目录,它持有实际文件:第二个是 缓存区(Index),它像个缓存区域,临时保存你的改动:最后是 HEAD,指向你最近一次提交后的结果. ...
- git简易操作手册
从远程仓库新建 $ git clone https://github.com/xxxr/Repository.git $ cd Repository/ $ git config --global us ...
- Git Hub 使用手册参考
参考信息 1.http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b0002.http://ww ...
- Git 安装配置手册
Git 安装配置手册 首先我们要了解 Git 是类似于 SVN 用来管理项目的 首先要先下载 Git ,这个东西相当于一个核,是该功能的核心 下载地址(<https://gitforwindow ...
随机推荐
- Vue组件基础用法
前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需, ...
- C# 获取并判断操作系统版本,解决Win10、 Windows Server 2012 R2 读取失败的方案
Windows 8.1, Win10之后,通过GetVersion and GetVersionEx 方法获取WIndows操作系统版本号的功能需要添加manifest文件后才能查找到,不然的话会查找 ...
- linux下添加定时任务
linux下定时任务文件在/etc/crontab 直接vim /etc/crontab 打开就行 在crontab文件中如何输入需要执行的命令和时间.该文件中每行都包括六个域,其中前五个域是指定命令 ...
- Android -- AsyncTask源码解析
1,前段时间换工作的时候,关于AsyncTask源码这个点基本上大一点的公司都会问,所以今天就和大家一起来总结总结.本来早就想写这篇文章的,当时写<Android -- 从源码解析Handle+ ...
- 对于查询调优,你需要的不止STATISTICS IO
在我查询调优期间,STATISTICS IO会话选项是我的朋友,因为对于指定的查询,它准确告诉你有多少页已读取.每次,SQL Server从缓存池骑牛一个8K的页,它通过STATISTICS IO的输 ...
- Java 开发环境配置(Windows篇)
window系统安装java 下载JDK 首先我们需要下载java开发工具包JDK,下载地址:http://www.oracle.com/technetwork/java/javase/downloa ...
- Python3使用Print输出带颜色字体
Phton3使用print输出带颜色的彩色字体 实现过程: 终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关. 转义序列是以ESC开头,即用\03 ...
- Mikit前端框架,轻量级CSS&JS前端框架
Mikit CSS Framework Mikit介绍 Mikit是前端开发人员和前端设计师所喜爱的Web框架.Mikit的创建和设计旨在为前端社区提供最灵活而强大的CSS框架. 与许多其他网络框架不 ...
- 《principles of model checking》中的离散时间马尔科夫链
<principles of model checking>中的离散时间马尔科夫链 说明:此文为我自学<principles of model checking>第十章内容的笔 ...
- 如何为ubuntu server 版本 安装图形界面
强烈建议使用命令行的交互方式,就算你在server上装了图形界面,但是在Linux上,大部分重要的操作还是要通过命令行的方式进行操作. 如何为ubuntu server 版本 安装图形界面 Ubunt ...