Git的原理涉及快照流、链表、指针等,这里不作过多叙述。

1.基本操作

git init

创建一个 Git 仓库

git clone [url]

拷贝一个 Git 仓库到本地

git add [file_name]

git add 命令可将该文件添加到缓存

git commit -m "备注信息"

使用 git add 命令将想要快照的内容写入缓存区, 而执行 git commit 将缓存区内容添加到仓库中。使用 -am 可以跳过 add 命令

git reset HEAD

git reset HEAD 命令用于取消已缓存的内容

git status

git status 以查看在你上次提交之后是否有修改

  • -s 参数可以获得简短的结果输出

git rm

从 Git 中移除某个文件。

  • -f : 强制删除
  • --cached : 从暂存区域移除,但仍然希望保留在当前工作目录中
  • –r * : 递归删除整个目录内的子目录和文件

git mv

git mv 命令用于移动或重命名一个文件、目录、软连接

2.设置签名

签名 = 用户名 + 邮箱

项目级别/ 仓库级别

git config userName demo@163.com

保存在 ./.git/config 文件

系统用户级别

git config --global userName demo@163.com***

保存在 ~/.gitconfig 文件

项目级别优先于系统用户级别,不能没有签名。

3.查看历史记录

git log --pretty=oneline

git log [--oneline]

git reflog

多屏显示控制方式:

空格向下翻页

b 向上翻页

q 退出

4.版本回退

基于索引值的版本回退

查找历史版本,黄色字体(最左边开头部分)就是索引值。

git reflog

回退

git reset --hard [索引值]

使用^回退一步

git reset --hard HEAD^

git reset --hard HEAD^^

使用~回退n步

git reset --hard HEAD~n

reset 命令的三个参数对比

--soft 参数

  • 仅仅在本地库移动 HEAD 指针

--mixed 参数

  • 在本地库移动 HEAD 指针
  • 重置暂存区

--hard 参数

  • 在本地库移动 HEAD 指针
  • 重置暂存区
  • 重置工作区

5.比较文件差异

git diff [文件名]

  • 将工作区中的文件和暂存区进行比较

git diff [本地库中历史版本] [文件名]

  • 将工作区中的文件和本地库历史记录比较
  • git diff HEAD apple.txt

不带文件名比较多个文件

6.分支操作

  • 创建分支

    git branch [分支名]

  • 查看分支

    git branch -v

  • 切换分支

    git checkout [分支名]

  • 合并分支

    将任何分支合并到当前分支

    git merge [分支名]

  • 合并冲突

    • 合并冲突时,会进入MERGING状态,查看冲突文件。

      123456

      =======

      456789

      >>>>>>> master

      HEAD:当前分支内容

      master:另一分支内容

      此时进入手动修改阶段.....

    • 冲突的解决

      • 编辑文件,删除特殊符号

      • 把文件修改到满意的程度,保存退出

      • git add [文件名]

      • git commit -m "日志信息"

        此时commit一定不能带文件名。

本地库关联Github远程库

git remote add [shortname][url]

例:git remote add origin git@github.com:tianqixin/runoob-git-test.git

推送到远程仓库

git push [alias][branch]

例:git push origin master

推送冲突

如果在你提交修改时已经有了其它人提交修改,那就会产生冲突。

这时候可以先合并冲突 pull 拉取到本地,然后按照 合并冲突 的解决方法做即可。

查看当前的远程库

git remote [-v]

1.从远程仓库下载新分支与数据到本地

git fetch [alias]/[branch]

2.从远端仓库提取数据并尝试合并到当前分支

git merge [alias]/[branch]

拉取(pull = fetch+merge)

git pull [alias][branch]

删除远程仓库

删除远程仓库你可以使用命令:

git remote rm [alias]

Git&Github基本操作与分支管理的更多相关文章

  1. Git 最佳实践:分支管理

    5月份,为统一团队git分支管理规范,刚开始准备自己写,在网上搜了下,发现不少不错的git分支管理实践.最后我为团队选择了这个git分支管理实践 A successful Git branching ...

  2. git基本操作:分支管理

    一.创建测试项目 1.新建GitHub仓库 在GitHub上面新创建一个仓库,用来演示分支管理,如下图所示: 点击“Create repository”按钮创建新仓库. 2.将本地仓库项目上传到Git ...

  3. Git/GitHub基本操作

    GitGit是分布式版本控制工具,SVN是集中式版本控制,有单点故障的问题GitHub是Git的代码托管中心,类似的国内有码云,是远程维护库Git的优势大部分操作在本地完成,不需要联网完整性有保证尽可 ...

  4. git+github上传与管理

    1.首先下载并安装git,方便管理github上的代码 https://git-scm.com/downloads 2.然后点击安装好的git bash(注册好自己的github) git confi ...

  5. [置顶] 【Git入门之八】分支管理

    原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/12309385 1.分支又是神马? 我为什么说又是... 分支就是一个我们能通 ...

  6. git 入门教程之分支管理

    背景 什么是分支?简单地说,分支就是两个相对独立的时间线,正常情况下,独立的时间线永远不会有交集,彼此不知道对方的存在,只有特定情况下,两条时间线才会相遇,因为相遇,所以相知,因为相知,所以改变! 正 ...

  7. Git系列五之分支管理

    1.Git分支管理 分支即是平行空间,假设你在为某个手机系统研发拍照功能,代码已经完成了80%,但如果将这不完整的代码直接提交到git仓库中,又有可能影响到其他人的工作,此时我们便可以在该软件的项目之 ...

  8. Git——github基本操作

    基本概念 上一篇文章写到git共享仓库,但是有个局限性,就是这个仓库存在于本地,其他人无法从我们这个仓库拿到共享的内容 但是我们可以将这个共享仓库放入一个远程的服务器上,然后设置一些登录权限就能完美的 ...

  9. 【Git】六、分支管理&冲突解决

    上一节讲了如何和远端的仓库协同工作,这一节介绍一下分支 ---------------------------- 提要 //创建一个分支dev $ git branch dev //切换到dev分支 ...

随机推荐

  1. Retrieve OpenGL Context from Qt 5.5 on OSX

    In the latest Qt 5.5, the QOpenGLWidget is much better and has less bugs than the QGLWidget, but it ...

  2. 使用Nginx实现服务器反向代理和负载均衡

    前言 同事总问我Nginx做反向代理负载均衡的问题,因此特意留下一篇扫盲贴! 直接部署服务器的风险 假设,我开发了一个网站,然后买了一台Web服务器和一台数据库服务器,直接部署到公共网络上.如下图,网 ...

  3. seajs的原理以及基本使用

    seajs模块化开发 模块化开发,把整个文件分割成一个一个小文件. 使用方法 使用方法特别简单,首先在官网中下载sea.js,然后在页面中引入. index.html // 1.路径 // 2.回调 ...

  4. tab 切换实现方法

    ul li 实现方法(只适用于,一个页面只有一组ul>li) <!--menu--> <div class="nav"> <ul class=& ...

  5. 使用 float 存储小数?

    很多程序员就会使用 float 类型来存储小数.sql 的 float 类型和其他大多数编程语言的 float 类型一样, 根据IEEE 754 标准使用二进制格式编码实数数据. 但是很多程序员并不清 ...

  6. Vue2 学习笔记3

    文中例子代码请参考github 定义Vue组件 什么是组件: 组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不同的功能模块,将来我们需要什么样的功能,就可以去调用对应的组 ...

  7. Django之--模板加载图片

    在使用Django加载图片时遇到了一些问题,在模板html文件中无论使用绝对路径还是当前相对路径都无法找到图片,一直报403和404的错误,后来结合官网和网上的其他资料总算是成功了,这里记下来. 参考 ...

  8. MySQL复制错误1837的相关缺陷一例

    故障现象 主从gtid报错,复制错误1837,这个复制故障可以说是第一次遇到. Last_Errno: 1837 Last_Error: Error 'When @@SESSION.GTID_NEXT ...

  9. windows 上查看一个命令的退出码

    windows 上查看一个命令的退出码可以使用下面语句 echo %errorlevel% 例如:windows 上没有ls 命令,所以使用后没有成功,查看退出码为9009 ,非0 使用dir 列出目 ...

  10. array_walk函数与call_user_func_array函数

    一, php手册的解释: call_user_func_array - 调用回调函数,并把一个数组参数作为回调函数的参数  说明: mixed  call_user_func_array  ( cal ...