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. [随时更新][Android]小问题记录

    此文随时更新,旨在记录平时遇到的不值得单独写博客记录的细节问题,当然如果问题有拓展将会另外写博客. 原文地址请保留http://www.cnblogs.com/rossoneri/p/4040314. ...

  2. recovery 升级前兼容性检查(Vendor Interface Object)

    从android P(9.0)版本开始,我们发现编译出来的OTA升级了里面多了一个文件,compatibility.zip,这个里面存储这system与vendor分区的一些特性,用来做升级前的兼容性 ...

  3. [20190319]shared pool latch与library cache latch的简单探究.txt

    [20190319]shared pool latch与library cache latch的简单探究.txt --//昨天看Oracle DBA手记3:数据库性能优化与内部原理解析.pdf 电子书 ...

  4. SQL Server 锁实验(UPDATE加锁探究)

    update语句: 本例中由于看到的是update执行完的锁情况,因此无法看到IU锁,但其实针对要修改的数据页和索引页会先加IU锁,记录和键先加U锁,然后再转化为IX和X锁. 如果想要看到IU锁和U锁 ...

  5. Incorrect key file for table错误解决方法

    问题现象: alter table portal_app_xxxx_xxx add devno varchar(64) NOT NULL DEFAULT '' COMMENT '设备机编',add s ...

  6. 线程--实现Runnable接口

    实现Runnable接口,创建线程步骤: 1.定义类,并实现Runnable接口 2.重写Runnable接口中的run()方法 3.通过Thread类建立线程对象 4.将实现了Runnable接口的 ...

  7. PostgreSQL条件表达式 case when then end

    例: SELECT CASE WHEN (store_size <= (100)::NUMERIC) THEN '小店'::TEXT WHEN (store_size >= (200):: ...

  8. Linux 27 岁了!盘点 Linux 的 27 件趣事

    Linux 27 岁了!盘点 Linux 的 27 件趣事 许多人认为10月5日是 Linux 系统的周年纪念日,因为这是 Linux 在1991年首次对外公布的时间.不过,你可能不知道的是,早在19 ...

  9. PHP防盗链的基本思想&&防盗链的设置方法

    PHP防盗链的基本思想&&防盗链的设置方法 网站盗链会大量消耗被盗链网站的带宽,而真正的点击率也许会很小,严重损害了被盗链网站的利益.本文主要介绍用PHP实现防盗链的方法以及基本思想, ...

  10. Django进阶使用

    Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行 ...