热门标签 | 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 便可以看到所做的修改了。



推荐阅读
  • 本文探讨了如何使用Go语言从传统的INI配置文件中提取所需的信息。INI文件因其简单易用而在多种环境中广泛采用,如操作系统设置、游戏引擎配置以及版本控制系统等。 ... [详细]
  • Git SSH配置及远程仓库操作指南
    本文介绍了如何配置Git环境,包括设置用户信息、生成和添加SSH密钥,并详细说明了如何通过SSH连接到远程仓库进行版本控制操作。 ... [详细]
  • 今天我在操作Git时遇到了一个问题,即我的仓库进入了分离的HEAD状态,这与之前讨论过的‘即使本地有更改,git push仍显示所有内容最新’的问题类似。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • Git支持通过自定义钩子来扩展其功能,这些钩子根据触发条件的不同,可以分为客户端和服务器端两种类型。客户端钩子通常与本地操作相关联,如提交代码或合并分支;而服务器端钩子则与远程仓库的交互有关。 ... [详细]
  • 利用Java与Tesseract-OCR实现数字识别
    本文深入探讨了如何利用Java语言结合Tesseract-OCR技术来实现图像中的数字识别功能,旨在为开发者提供详细的指导和实践案例。 ... [详细]
  • 本文总结了多个常用的 Git 命令,包括分支管理、代码提交、远程仓库同步等,旨在帮助开发者高效利用 Git 进行版本控制。 ... [详细]
  • 软件项目管理实践——Jenkins持续集成与Maven、GitHub的应用
    本文详细介绍了如何利用Jenkins实现持续集成,以及Maven和GitHub在项目开发中的具体应用。包括环境搭建、工具安装、项目创建及代码管理等关键步骤。 ... [详细]
  • 本文详细解析了在使用Git进行代码推送时常见的两个错误——'fetch first'和'non-fast-forward',并提供了有效的解决方案。通过理解这些错误背后的原因,开发者可以更加高效地管理代码版本。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
  • Eclipse 中 Maven 的基础配置指南
    本文详细介绍了如何在 Eclipse 环境中配置 Maven,包括环境变量的设置、Maven 插件的安装与配置等关键步骤,旨在帮助开发者顺利搭建开发环境。 ... [详细]
  • 这个报错出现在userDao里面,sessionfactory没有注入。解决办法:spring整合Hibernate使用test测试时要把spring.xml和spring-hib ... [详细]
  • 构建Python自助式数据查询系统
    在现代数据密集型环境中,业务团队频繁需要从数据库中提取特定信息。为了提高效率并减少IT部门的工作负担,本文探讨了一种利用Python语言实现的自助数据查询工具的设计与实现。 ... [详细]
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社区 版权所有