170425-git命令详解

1.gitlab版本管理工具的使用
1.1 配置git
1.2 创建版本库
1.3 删除文件
1.4 建立基于git的文件跟踪.
1.5 把文件提交到仓库
1.6 查看当前仓库的状态
1.7 比较当前文件和已提交文件的不同
1.8 查看提交日志
1.9 版本回退
1.10 创建本地分支
1.11 查看本地分支
1.12 切换分支
1.13 提交修改
1.14 撤销修改
2远程仓库:
2.1 创建SSH Key:
2.2 关联远程仓库
2.3 第一次推送内容到远程仓库:
2.4 后续提交变更到远程仓库:
2.5 从远程仓库克隆数据:
2.6 查看远程分支
2.7 推送本地分支到远程服务器上;
2.8 推送本地分支到远程分支的情况:
2.9 创建远程分支到本地
2.9 切换到远程分支
2.10 删除远程分支
2.11 删除本地分支
2.12 重命名本地分支
2.13 查看远程和本地分支
2.14 拉取分支
3分支管理:
3.1 创建分支并切换到分支上:
3.2 查看分支
3.3 创建分支
3.4 切换分支
3.5 将其他分支的提交合并到当前分支
3.6 合并冲突
3.7 查看合并过程:
4 Bug分支
4.1 保存现场
4.2 修复bub过程
5 标签管理
5.1 创建标签
5.2 查看标签列表
5.3 给历史commit打标签
5.4 查看标签详情
5.5 创建标签的时候附带上标签说明
5.6 删除本地标签
5.7 推送指定标签到远程服务器上
5.8 推送所有标签到远程服务器上
5.9 删除远程标签
5.10 github
5.11 给git 增加颜色
5.12 忽略特殊文件
5.13 给命令取别名
把一个分支的修改合并到当前分支
拉取代码的时候采用rebase的形式
git revert
分支合并的建议
重要概念
创建temp分支, 将远程master分支下载到本地temp分支中.
比较当前分支和temp分支的区别

1.gitlab版本管理工具的使用

1.1 配置git

git config –global user.name "Your Name"

git config –global user.email "[email protected]"

1.2 创建版本库

git init // 将当前目录变成git可以管理的仓库;[如果代码已经存在也可以使用该命令]

1.3 删除文件

rm 文件

git rm 文件

git rm –cached 文件 //撤销某个文件的追踪.

git commit -m ‘删除文件‘

[如果删除错了,也可以从版本库中检出文件进行恢复]

1.4 建立基于git的文件跟踪.

git add //提交

git add 文件名 //提交单个文件

git add . //提交所有

git add –all //提交所有

1.5 把文件提交到仓库

git commit -m ‘xxx‘ -m后是提交的说明信息

1.6 查看当前仓库的状态

git status

1.7 比较当前文件和已提交文件的不同

git diff 文件

git diff HEAD – 文件

1.8 查看提交日志

git log //查看每次提交的版本信息

git log –pretty=oneline //单行模式显示(只显示版本号和版本注释)

  1. commit 3f90684cd8049f14dc5b0f53ca631d06583d5e31
  2. Author: qiang <qiang.[email protected].com>
  3. Date: Tue Mar 21 10:07:17 2017 +0800
  4. 7.rest framework 简单配置使用

1.9 版本回退

版本回退到某个时间点后通过log是看不到该时间点以后的版本号的,要想穿越到未来的版本只有靠记住未来版本的版本号.

[git reflog 命令操作历史,这里没准也能找到你曾今的版本号],然后执行git reset –hard 版本号穿越到未来版本;

git reset –hard

git reset –hard 版本号[每次commit都会生成一个版本序列号]

git reset –hard 3f90684cd8049f14dc5b0f53ca631d06583d5e31

1.10 创建本地分支

git checkout -b develop1

1.11 查看本地分支

git branch

1.12 切换分支

git checkout 分支名称 //和撤销很像 就差‘–‘ 两个横杆

1.13 提交修改

git add 文件1 //放入暂存区

git add 文件2 //放入暂存区

git add -f 文件 //强制放入暂存区[被.gitignore忽略了的文件]

git check-ignore -v 文件 检查.gitignore文件规则和提交文件的冲突

git commit -m ‘‘ //提交暂存区中的文件

1.14 撤销修改

git add 文件 //后发现文件修改不对

git checkout – 文件 //将文件撤销到文件最近一次git commit或git add状态[文件还未进行git add]

如果文件已经git add 了需要 git reset HEAD file 撤销到git add之前.

如果文件已经 git commit了 需要 进行版本回退.

git reset –hard

2远程仓库:

2.1 创建SSH Key:

ssh-keygen -t rsa -C ‘[email protected]‘

2.2 关联远程仓库

git remote add origin [email protected]:qiang.wu/kubo.git

2.3 第一次推送内容到远程仓库:

git push -u origin master

[Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。]

2.4 后续提交变更到远程仓库:

git push origin master

2.5 从远程仓库克隆数据:

git clone [email protected]:qiang.wu/kubo.git

2.6 查看远程分支

git remote

git remote -v 会显示权限[fetch push推送信息的权限]

2.7 推送本地分支到远程服务器上;

git push origin master //master是本地分支

git push origin dev //将dev的本地分支推送到远程服务器上

master分支 dev分支都需要和远程服务器保持一致;

2.8 推送本地分支到远程分支的情况:

a.远程已有remote_branch分支并且已经关联本地分支local_branch且本地已经切换到local_branch

git push

b.远程已有remote_branch分支但未关联本地分支local_branch且本地已经切换到local_branch

git push -u origin/remote_branch

c.远程没有有remote_branch分支并,本地已经切换到local_branch

git push origin local_branch:remote_branch

2.9 创建远程分支到本地

git checkout -b dev origin/dev

2.9 切换到远程分支

git checkout –track origin/dev

2.10 删除远程分支

git push origin :remote_branch //方法一

git branch -d -r branchname //方法二

2.11 删除本地分支

git branch -d local_branch

2.12 重命名本地分支

git branch -m old_branchname new_branchname

如果new_branchname已经存在使用

git branch -M old_branchname new_branchname

2.13 查看远程和本地分支

git branch -a // 查看所有分支

git branch -r //查看远程分支

2.14 拉取分支

设置本地分支和远程分支的链接

git branch –set-upstream dev origin/dev

git pull

git commit -m ‘merge & fix ‘

git push origin dev

3分支管理:

3.1 创建分支并切换到分支上:

git checkout -b dev

基于远程分支创建一个分支

git checkout -b dev origin/dev

3.2 查看分支

git branch

3.3 创建分支

git branch dev

3.4 切换分支

git checkout dev

3.5 将其他分支的提交合并到当前分支

git checkout master //切换到主分支

git merge dev //将dev分支合并到主分支

git branch -d dev //删除分支. [当分支未合并时候,会报错]

git branch -D dev //强制删除;

3.6 合并冲突

git merge dev

git status //查看冲突

然后直接打开冲突的文件

解决冲突

git add 冲突文件

git commit -m ‘aaa‘

然后当前的版本合并就完成了;

3.7 查看合并过程:

git log //查看日志完整版

git log –graph //查看合并完整版

git log –graph –pretty=oneline –abbrev-commit //查看合并的精简版

git log –pretty=oneline –abbrev-commit //查看日志的精简版

git merge –no-ff -m ‘merge with no-ff‘ dev //非fast forward的合并模式;

git log –graph –pretty=oneline –abbrev-commit

4 Bug分支

4.1 保存现场

git stash

4.2 修复bub过程

git checkout master //切换到主分支

git checkout -b issue-101

修改bug

修复完成

git add 文件

git commit -m ‘fix bug 101‘

切换回主分支

git checkout master

git merge –no-ff -m ‘merged bug fix 101‘ issue-101

删除修复bug分支

git branch -d issue-101

返回到自己的分支

git checkout dev

git status

查看现场

git stash list

恢复现场

git stash apply [email protected]{0} //恢复但是不删除现场

git stash drop 现场 //删除现场

git stash pop 现场 //恢复的同时删除现场

5 标签管理

发布一个版本时,我们首先在版本库中打一个标签(tag).标签是版本库的一个快照;

5.1 创建标签

git checkout master //切换到需要打标签的分支[一般这个分支是master]

git tag v1.0

5.2 查看标签列表

git tag

git log –pretty=oneline –abbrev-commit

644a1a0 增加用户登录功能 editor page_head.html.

ce365a8 增加用户登录功能.

ea26444 Modify Admin display interface and use the local language.

b32f957 add 404.html

5.3 给历史commit打标签

git tag v0.9 644a1a0 //指定commit提交的版本号

5.4 查看标签详情

git show v0.9

5.5 创建标签的时候附带上标签说明

git tag -a v0.9 -m ‘version 0.1 released‘ 644a1a0

给tag加上签名:

git tag -s v0.2 -m ‘signed version 0.2 released‘ 644a1a0

5.6 删除本地标签

git tag -d v0.1

5.7 推送指定标签到远程服务器上

git push origin v0.1

5.8 推送所有标签到远程服务器上

git push origin –tags

5.9 删除远程标签

1.

先删除本地标签

git tag -d v0.9

2.

再删除远程标签

git push origin :refs/tags/v0.9

5.10 github

http://blog.jobbole.com/76854/

pull request

  1. 开发者在本地仓库中新建一个专门的分支开发功能.
  2. 开发者先push自己的分支到公开的bitbucket仓库中;
  3. 开发者通过bitbucket发起一个pull request.
  4. 团队的其他成员review code.讨论并修改.
  5. 项目维护者合并功能到官方仓库中并关闭pull request.

5.11 给git 增加颜色

git config –global color.ui true

5.12 忽略特殊文件

在git工作区的根目录下创建一个特殊的文件.gitignore

https://github.com/github/gitignore

忽略文件的原则是:

忽略操作系统自动生成的文件,比如缩略图等;

忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;

忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。

5.13 给命令取别名

  • git config –global alias.st status
  • git config –global alias.ci commit
  • git config –global alias.br branch
  • git ci -m ‘bala bala bala‘
  • git config –global alias.last ‘log -1‘
  • git config –global alias.unstage ‘reset HEAD‘

把一个分支的修改合并到当前分支

git checkout mysite

git rebase origin

将本地的commit转换成补丁,然后将当前工作区更新为最新的origi分支.然后再将转换后的补丁应用到mysite中;

当rebase存在冲突的时候;

解决冲突:

git rebase –continue

git rebase –abort 随时终止rebase行动.

拉取代码的时候采用rebase的形式

git pull –rebase //向本地拉取代码的时候,将本地的commit保存为补丁

git revert

git revert 是生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留

git reset 是回到某次提交,提交及之前的commit都会被保留,但是此次之后的修改都会被退回到暂存区

http://blog.csdn.net/hudashi/article/details/7664460

分支合并的建议

建议一般我们把别的分支合并到master时用merge,而把master合并到别的分支时会用到rebase的原因,这是因为master分支一般commit会比较频繁。

重要概念

pull=fetch+merge

![](/assets/Git Data Transport commands.png)

创建temp分支, 将远程master分支下载到本地temp分支中.

git fetch origin master:temp

比较当前分支和temp分支的区别

git diff temp

解决冲突

null

时间: 2024-09-30 09:54:11

170425-git命令详解的相关文章

Git命令详解(一)-个人使用

原文  http://blog.csdn.net/magicharvey/article/details/12431867 本文暂时不会涉及到团队如何使用Git的内容,而是从个人的角度探讨如何用好Git. 约定 绿色的5位字符表示提交的ID,分别指向父节点.分支用橘色显示,分别指向特定的提交.当前分支由附在其上的标识. 这张图片里显示最后5次提交,是最新提交.分支指向此次提交,另一个分支指向祖父提交节点. git cat-file git cat-file -t,查看Git对象的类型,主要的gi

Git初探--笔记整理和Git命令详解

几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面clone一个项目到本地时(假设项目名为GitTest),在本地就会看到一个名为GitTest的目录,目录下有项目代码和一个名为.git的目录,什么是工作区呢,就是除了.git文件夹以外的所有东西,我们主要在工作区上阅读,修改,添加删除代码和其他内容,而这个.git目录就称为一个版本库,这个版本库中存

Git命令详解

1. Git 1.1. Git是何方神圣? Git是用C语言开发的分布版本控制系统.版本控制系统可以保留一个文件集合的历史记录,并能回滚文件集合到另一个状态(历史记录状态).另一个状态可以是不同的文件,也可以是不同的文件内容.举个例子,你可以将文件集合转换到两天之前的状态,或者你可以在生产代码和实验性质的代码之间进行切换.文件集合往往被称作是“源代码”.在一个分布版本控制系统中,每个人都有一份完整的源代码(包括源代码所有的历史记录信息),而且可以对这个本地的数据进行操作.分布版本控制系统不需要一

Git 命令详解

git init 在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹. git clone 获取一个url对应的远程Git repo, 创建一个local copy. 一般的格式是git clone [url]. clone下来的repo会以url最后一个斜线后面的名称命名,创建一个文件夹,如果想要指定特定的名称,可以git clone [url] newname指定. git status 查询repo的状态. git

【转】 Git 常用命令详解(二)----不错

原文网址:http://blog.csdn.net/ithomer/article/details/7529022 Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍,请参考我的上一篇博客:Git 版本管理工具 一. Git 命令初识 在正式介绍Git命令之前,先介绍一下Git 的基本命令和操作,对Git命令有一个总体的认识 示例:从Git 版本库

git archive命令详解

git archive可以将加了tag的某个版本打包提取出来,例如: git archive -v --format=zip v0.1 > v0.1.zip --format表示打包的格式,如zip,-v表示对应的tag名,后面跟的是tag名,如v0.1. git archive命令详解,布布扣,bubuko.com

【Git使用详解】Egit的常用操作详解

常用操作 操作 说明 Fetch 从远程获取最新版本到本地,不会自动merge Merge 可以把一个分支标签或某个commit的修改合并现在的分支上 Pull 从远程获取最新版本并merge到本地相当于fetch+merge Push 将本地分支的更新,推送到远程主机 Merge tool 当你的代码产生了冲突可以通过此工具快速的对比 Switch to 将当前分支切换到其它分支或标签 Commit 将更改提交到本地库中 Rebase 可以把在一个分支里提交的改变移到另一个分支里重放一遍 Re

【Git使用详解】Egit使用过程中遇到的问题及解决办法

1.   Git错误non-fast-forward后的冲突解决 问题(Non-fast-forward)的出现原因在于:git仓库中已经有一部分代码,所以它不允许你直接把你的代码覆盖上去.于是你有2个选择方式: 1.强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容 git push –f 如果你用的是Egit则可以在推送界面选择"Force Update All Specs"即可,如下图: 2.先把git的东西fetch到你本地然后merge后再push $ git fet

三十九、git add详解

一.前言git add命令主要用于把我们要提交的文件的信息添加到索引库中.当我们使用git commit时,git将依据索引库中的内容来进行文件的提交.二.基本git add <path>表示 add to index only files created or modified and not those deleted 我通常是通过git add <path>的形式把我们<path>添加到索引库中,<path>可以是文件也可以是目录.git不仅能判断出&

iOS开发——开发实战篇&amp;版本控制SVN和Git使用详解

版本控制SVN和Git使用详解 公司的实际开发中,在天朝使用较多的还是SVN,因为SVN是集中式的,在天朝上班你们都懂的! -----------------svn----------------- 一:最常用基本步骤--- 下载(完整下载,第一次),将服务器的项目下载到本地开始开发 svn checkout ip —uaerbane=? —password=?     //这里需要add 简:co 更新仓库,服务器项目有变动的时候需要更新到本地,以免错误或者冲突 svn updata