热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Git学习指南

Git基本概念仓库分为本地库和远程库。一般会存在一个远程库作为协作的公共仓库,进行全局的版本管理。如你在github中注册的仓库(repository&

Git

基本概念

  1. 仓库分为本地库和远程库。一般会存在一个远程库作为协作的公共仓库,进行全局的版本管理。如你在 github 中注册的仓库( repository )。
  2. git 描述了工作区,暂存区,版本库的概念。你编写代码所在的位置称作工作区;使用 git add 指令后,暂存区便保留了你的修改记录;使用 git commit 后,生成了一个新的文件库版本(新版本),版本线往前推进一步。
  3. HEAD 指针,指向一个指向当前分支(current branch)的指针(branch name),即你正在操作的版本。可以通过操作 HEAD 指针快速的实现许多操作。HEAD --> master(branch) --> commitVersion

基础指令

添加修改到暂存区

  1. git add [filename], 添加你的修改记录到暂存区。
    • git add , 添加除删除文件以外的修改到暂存区,包括内容修改,新建文件。
    • git add -u 添加除新建文件以外的修改到暂存区,包括内容修改,删除文件。
    • git add --all 添加所有更改到暂存区
  2. Git commit -m 'msg'
    • 提交所有暂存区的更改,生成一个新的版本,版本线向前推进一步。
  3. Git log
    • 查看历史commit记录
  4. Git status
    • 查看当前的操作状态。
  5. Git reflog.
    • 查看本地会影响HEAD指针的命令操作记录

放弃文件修改

  1. git checkout [filename]
    • 回退到上次工作区保存前状态。
  2. git reset HEAD
    • 版本回退,回归历史版本。操作 HEAD 指针指向过去的某个版本,以实现历史回退的操作。该操作在下次清除垃圾时,会抹除丢弃的提交。
  3. git revert
    • 同 reset 操作一样,其目的是为了版本回溯,区别在于,revert 进行一个正向的 commit 操作,其提交内容是想要回退的旧版本内容。该操作不会影响你的操作历史。
  4. Git checkout [branchname]
    • 切换分支,
    • git checkout -b [branchname] = git branch [branchname] + git checkout [branchname]
  5. Git merge [branchname] 合并分支
  6. git merge --no-ff -m 'merge yaozhang-b' yaozhang-b
    • git merge 会默认采用快速合并模式,即版本线向前推进,移动 HEAD 指针到合并点,使合并分支和被合并的分支同步,合并不会生成commit。 使用 --no-ff 可以采用普通合并,生成一次 merge 记录,做一次 commit ,将合并痕迹生成在历史记录中。
  7. Git diff
    • 查看文件具体的修改内容。
  8. git stash
    • 当前分支修改为提交时,是无法进行分支切换的。但我们并不想提交修改,因为工作进行到一半还未完成。使用 git stash 将工作区修改先存储起来, 然后我们可以如愿的切换到别的分支解决问题。
    • git stash list 查看当前 stash的列表。
    • git stash pop 恢复最近一次 stash 的修改内容。并删除 stash 列表中的记录
    • git stash apply [stashid] 恢复 stash 列表中的修改内容。
    • git stash deop [stashid] 删除 stash 列表中的记录。
  9. git pull
    • 从远程分支拉取内容,进行了 git fetch 和 git merge 的操作。
    • git pull --rebase。从远程拉取版本,与本地分支进行合并。
    • 在合并过程中如想完全采取一方的更改,可使用如下指令 git checkout --ours(theirs) [filename],远程库为ours,本地为theirs。 git将本地更改先patch到。/git/rebase目录,以获取到的远程库版本为base 进行合并。
  10. git push
    • 将本地内容,推送到远程库。

小指南

  1. merge时出现 ./MERGE_MSG.swp文件处理。
    • blog.csdn.net/qq_32452623…
  2. git 对文件名的大小写修改不敏感, 当修改文件后, git status 可能发现工作区干干净净, 然而我们的的确确修改了文件名的大小写。
    • 使用 git config core.ignorecase false 可以设置 git 对文件名大小写敏感。再查看 git status 便可以看到所做的修改了。



推荐阅读
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
  • Day 5 20190120 老男孩python学习第5天 内容整理
    今天继续看MasteringPycharm的视频,一个半小时看git的教学视频:视频1小时44分钟,看了2个半小时以上https:www.youtube ... [详细]
  • 本文介绍了在git中如何对指定的commit id打标签,并解决了忘记打标签的问题。通过查找历史提交的commit id,可以在任意时间点打上标签。同时,还介绍了git中的一些常用命令和操作。 ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
  • 本文讨论了在使用Git进行版本控制时,如何提供类似CVS中自动增加版本号的功能。作者介绍了Git中的其他版本表示方式,如git describe命令,并提供了使用这些表示方式来确定文件更新情况的示例。此外,文章还介绍了启用$Id:$功能的方法,并讨论了一些开发者在使用Git时的需求和使用场景。 ... [详细]
  • 获取原始语音系统图使用matlab生成一个测试用的单频信号,1KHz,1Vrmsclcclearall;closeall;f1000;%定义信号频 ... [详细]
  • Mask-RCNN源码阅读笔记
    阅读了https:blog.csdn.netu011974639articledetails78483779?locationNum9&fps1这篇博客这篇博客介 ... [详细]
  • Github上73个超棒且可提高生产力的 NPM 包,高赞!
    来自:掘金,作者:火狼1https:juejin.impost6854573212890562573前言JS是前端的核心,但 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 本文介绍了如何在Azure应用服务实例上获取.NetCore 3.0+的支持。作者分享了自己在将代码升级为使用.NET Core 3.0时遇到的问题,并提供了解决方法。文章还介绍了在部署过程中使用Kudu构建的方法,并指出了可能出现的错误。此外,还介绍了开发者应用服务计划和免费产品应用服务计划在不同地区的运行情况。最后,文章指出了当前的.NET SDK不支持目标为.NET Core 3.0的问题,并提供了解决方案。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
author-avatar
年轮033
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有