注:本文仅为本人上课时的一些心得体会,由于本人能力有限,文章会有很多错漏之处,还请各位谅解,欢迎指正。
Git简介
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。它是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
基本概念
工作区:就是你平时存放项目代码的地方
暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。
远程仓库:托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换 。
基本指令(Git命令很多,这里只挑了部分我在实验中用到的说一说)
-
git init :Git 中用于初始化一个新的仓库的命令。当你在一个项目文件夹中运行 git init 命令时,Git 将在该文件夹中创建一个新的 Git 仓库。git init 命令后面可以跟一个路径参数,指定要初始化 Git 仓库的位置。如果不指定路径参数,它将在当前工作目录下初始化仓库。
-
git add : Git 中用于将文件的更改添加到暂存区的命令。通过将文件添加到暂存区,你可以选择性地将修改的文件提交到版本库,而不是一次性提交所有的更改。
加后缀< filename>可以指定文件。你也可以使用通配符来添加多个文件,比如 git add *.txt 将添加所有以 .txt 结尾的文件的更改。如果你想添加所有修改过的文件,可以使用 git add . 命令,这会将当前目录下所有修改过的文件添加到暂存区。 -
git rm : Git 中用于从 Git 仓库中移除文件的命令。它会将指定的文件从暂存区和工作目录中删除,并将这个删除操作记录在 Git 的历史中。git rm < filename>会将指定文件从暂存区和工作目录中移除,并记录这个删除操作。
如果你要删除的文件已经处于暂存区中(通过 git add 添加),那么你可以使用 git rm --cached < filename> 命令来将其从暂存区中移除,但保留在工作目录中。
git rm 命令也可以用来删除文件夹,只需要添加 -r 选项:git rm -r < directoryname>这会递归地删除指定的文件夹及其内容。 -
git mv: Git 中用于重命名或移动文件的命令。它实际上是将文件从一个位置移动到另一个位置,并同时将这个移动操作记录在 Git 的历史中。git mv < source> < destination>这会将源文件 < source> 移动到目标位置 < destination>,并将这个移动操作记录在 Git 的历史中。
如果你只是想简单地重命名文件,可以使用 git mv 命令来执行重命名操作:git mv < old_filename> < new_filename>。这会将文件 < old_filename> 重命名为 < new_filename>,并将这个重命名操作记录在 Git 的历史中。 -
git commit: Git 中用于将暂存区的更改提交到本地仓库的命令。提交操作将会将暂存区中的文件快照永久地记录到 Git 仓库中,并生成一个包含提交信息的提交对象。
git commit -m “commit message” 其中 -m “commit message” 是一个选项,用于指定本次提交的消息或注释。提交消息应该清晰明了,描述本次提交的目的和所做的更改。
另外,如果你想将暂存区中的所有更改一起提交,可以使用 -a 选项:git commit -am "commit message"这个命令会将所有已经被追踪(通过 git add 添加到暂存区)的文件的更改一起提交。 -
git push: Git 中用于将本地仓库的更改推送到远程仓库的命令。当你在本地仓库做了一些提交(使用 git commit 命令)后,想要将这些更改分享给其他开发者或备份到远程仓库时,就可以使用 git push 命令。
git push 其中 是远程仓库的名称(通常是 origin), 是要推送的分支名称。例如,如果你想将本地的 master 分支的更改推送到远程仓库的 master 分支,可以使用以下命令:git push origin master
如果你的本地分支名称与远程分支名称相同,你也可以简化命令:git push origin
这会将当前分支的更改推送到远程仓库的对应分支。 -
git pull: Git 中用于从远程仓库拉取最新更改并合并到本地仓库的命令。当你在本地仓库工作时,其他开发者可能已经对远程仓库做了一些提交,你可以使用 git pull 命令来获取这些最新的更改并将其合并到你的本地仓库中。
git pull 其中 是远程仓库的名称(通常是 origin), 是要拉取的分支名称。例如,如果你想从远程仓库的 master 分支拉取最新更改并合并到本地的 master 分支,可以使用以下命令:git pull origin master
如果你的本地分支名称与远程分支名称相同,你也可以简化命令:git pull origin。这会拉取远程仓库的当前分支的最新更改并合并到本地对应的分支。 -
git reset: Git 中用于撤销提交并移动 HEAD 指针的命令。它可以用于取消已经提交到本地仓库的一系列提交,并将本地仓库的状态回退到之前的某个提交。
git reset < commit>。其中 < commit> 是你要回退到的目标提交的哈希值或者可以标识该提交的引用,比如分支名或者标签名。
git reset 命令有三种主要的模式:
软重置(soft reset):git reset --soft ,这会撤销提交,但保留工作目录和暂存区的修改。
混合重置(mixed reset):git reset --mixed ,这是默认模式,会撤销提交并取消暂存区的修改,但保留工作目录中的修改。
硬重置(hard reset):git reset --hard ,这会彻底撤销提交,并且清除工作目录和暂存区的修改,慎用,因为它会永久丢失本地的修改。
除了使用提交的哈希值作为参数外,还可以使用相对引用,如 HEAD~1 表示当前提交的前一个提交,HEAD~2 表示当前提交的前两个提交,以此类推。