Git学习

什么是 Git?

Git 是一个分布式版本控制系统,用于追踪文件和项目的变化。它可以帮助开发者或团队有效地协同工作,并提供版本管理、分支管理、代码合并等功能。Git 的设计目标是速度快、简单易用。

Git 的基本概念

  1. 仓库(Repository):Git 仓库是存储代码和历史记录的地方。它可以位于本地计算机或远程服务器上。每个仓库都有一个唯一的标识符,称为仓库地址。

  2. 提交(Commit):一个提交代表一个代码变更,包含了若干个文件的状态。每个提交都有一个唯一的标识符(commit hash),用于标记和检索。

  3. 分支(Branch):分支是基于主线发展的独立线路,用于实现不同的功能或处理不同的任务。在 Git 中,每个分支拥有自己的提交历史。

  4. 远程仓库(Remote Repository):远程仓库是存储在网络上的仓库,用于多人协作和备份代码。常见的远程仓库服务包括 GitHub、GitLab 等。
    引用km学长的博客
    Git学习_第1张图片

Git 的基本操作

以下是几个常用的 Git 命令和操作:

  1. 初始化仓库git init 用于在当前目录下创建一个新的 Git 仓库。

  2. 添加文件git add 将文件添加到 Git 的暂存区,准备进行提交。

  3. 提交变更git commit -m "commit message" 将暂存区中的变更提交到本地仓库,-m 参数用于添加提交消息。

Git学习_第2张图片

  1. 查看状态git status 可以查看当前仓库的状态,包括已修改但未提交的文件和分支信息。

Git学习_第3张图片

git status 命令可以输出仓库当前的状态,上面的命令输出告诉我们,cc.txt 被修改过了,但还没有准备提交的修改。
git status 命令的输出十分详细,但其用语有些繁琐。Git 有一个选项可以帮您缩短状态命令的输出,这样可以以简洁的方式查看更改。使用 git
status -s 命令或 git status --short 命令,将得到一种格式更为紧凑的输出。
输出中有两栏,左栏指明了暂存区的状态,右栏指明了工作区的状态。
新添加的未跟踪文件前面有 ?? 标记,新添加到暂存区中的文件前面有 A 标记,修改过的文件前面有 M 标记。在这里插入图片描述
用 git diff 这个命令能看看具体修改了什么内容

Git学习_第4张图片

  1. 查看提交历史git log 用于查看当前分支的提交历史记录,包括提交标识符、作者、提交时间等。
    Git学习_第5张图片

  2. 创建分支git branch 创建一个新的分支。

  3. 切换分支git checkout 切换到指定的分支。

  4. 合并分支git merge 将指定分支的提交合并到当前分支。Git学习_第6张图片在dev分支上正常提交修改后的cc.txt 切换回main分支后打开 cc.txt的修改会消失
    用git merge dev会合并工作成果

git checkout -b dev 创建并切换分支
git branch dev 创建新的分支
git checkout dev 切换到分支
git branch 查看分支
git branch -d dev 删除分支
git merge  合并某分支到当前分支

当git无法自动合并分支时,必须首先解决冲突,解决冲突后再提交合并完成,解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容。
git log --graph能看到分支合并图

  1. 远程仓库: 在本地创建了Git仓库后,可以在Github上创建一个Git仓库 让两个仓库进行远程同步。
    Git学习_第7张图片
    Git学习_第8张图片
    从现在起,只要本地作了提交,就可以通过命令:
    git push origin master把本地 master 分支的最新修改推送至 GitHub。
  2. 推送到远程仓库git push 将当前分支的提交推送到远程仓库。
  3. 从远程仓库克隆:从零开发 最好的方式是先创建远程库 再从远程库克隆Git学习_第9张图片在这里插入图片描述
    从远程仓库抓取git fetch 将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看。
    git fetch origin 会抓取克隆(或上一次抓取)后新推送的所有工作 必须注意 git fetch 命令只会将数据下载到本地仓库——它并不会自动合并或修改当前的工作
    推送到远程仓库:git push Git学习_第10张图片

Git学习_第11张图片

查看远程仓库的更多信息:git remote show
修改远程仓库的简写名:git remote rename
删除远程仓库:git remote rm

git remote -v 查看远程仓库的简写名

Git学习_第12张图片

  1. 撤销操作git commit --amend修改最近一次提交记录的信息
 `git commit -m 'initial commit'
git add forgotten_file
git commit --amend
  1. 版本回退:

Git 必须知道当前版本是哪个版本,在 Git 中,用 HEAD 表示当前版本,也就是最新的提交 1094adb… ,上一个版本就是 HEAD^,上上一个版本就是 HEAD^^,当然往上 100 个版本写 100 个 ^
比较容易数不过来,所以写成 HEAD~100。
Git学习_第13张图片
git reset --hard 1094a 回退到某个版本 根据版本号
git reset 命令既可以回退版本,也可以把暂存区的修改回退到工作区
Git学习_第14张图片
用 git reflog 查看命令历史,以便确定要回到未来的哪个版本。

Git学习_第15张图片
git add 命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行 git commit 就可以一次性把暂存区的所有修改提交到分支。
12.修改管理
要从版本库中删除该文件,那就用命令 git rm 删掉,并且 git commit
git checkout – test.txt 用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

补充学习:

你可能感兴趣的:(git)