Git 是一个分布式版本控制系统,用于追踪文件和项目的变化。它可以帮助开发者或团队有效地协同工作,并提供版本管理、分支管理、代码合并等功能。Git 的设计目标是速度快、简单易用。
仓库(Repository):Git 仓库是存储代码和历史记录的地方。它可以位于本地计算机或远程服务器上。每个仓库都有一个唯一的标识符,称为仓库地址。
提交(Commit):一个提交代表一个代码变更,包含了若干个文件的状态。每个提交都有一个唯一的标识符(commit hash),用于标记和检索。
分支(Branch):分支是基于主线发展的独立线路,用于实现不同的功能或处理不同的任务。在 Git 中,每个分支拥有自己的提交历史。
远程仓库(Remote Repository):远程仓库是存储在网络上的仓库,用于多人协作和备份代码。常见的远程仓库服务包括 GitHub、GitLab 等。
引用km学长的博客
以下是几个常用的 Git 命令和操作:
初始化仓库:git init
用于在当前目录下创建一个新的 Git 仓库。
添加文件:git add
将文件添加到 Git 的暂存区,准备进行提交。
提交变更:git commit -m "commit message"
将暂存区中的变更提交到本地仓库,-m 参数用于添加提交消息。
git status
可以查看当前仓库的状态,包括已修改但未提交的文件和分支信息。git status 命令可以输出仓库当前的状态,上面的命令输出告诉我们,cc.txt 被修改过了,但还没有准备提交的修改。
git status 命令的输出十分详细,但其用语有些繁琐。Git 有一个选项可以帮您缩短状态命令的输出,这样可以以简洁的方式查看更改。使用 git
status -s 命令或 git status --short 命令,将得到一种格式更为紧凑的输出。
输出中有两栏,左栏指明了暂存区的状态,右栏指明了工作区的状态。
新添加的未跟踪文件前面有 ?? 标记,新添加到暂存区中的文件前面有 A 标记,修改过的文件前面有 M 标记。
用 git diff 这个命令能看看具体修改了什么内容
查看提交历史:git log
用于查看当前分支的提交历史记录,包括提交标识符、作者、提交时间等。
创建分支:git branch
创建一个新的分支。
切换分支:git checkout
切换到指定的分支。
合并分支:git merge
将指定分支的提交合并到当前分支。在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
能看到分支合并图
git push
将当前分支的提交推送到远程仓库。git fetch
将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看。git fetch origin
会抓取克隆(或上一次抓取)后新推送的所有工作 必须注意 git fetch 命令只会将数据下载到本地仓库——它并不会自动合并或修改当前的工作git push
查看远程仓库的更多信息:git remote show
修改远程仓库的简写名:git remote rename
删除远程仓库:git remote rm
git remote -v 查看远程仓库的简写名
git commit --amend
修改最近一次提交记录的信息 `git commit -m 'initial commit'
git add forgotten_file
git commit --amend
Git 必须知道当前版本是哪个版本,在 Git 中,用 HEAD 表示当前版本,也就是最新的提交 1094adb… ,上一个版本就是 HEAD^,上上一个版本就是 HEAD^^,当然往上 100 个版本写 100 个 ^
比较容易数不过来,所以写成 HEAD~100。
git reset --hard 1094a 回退到某个版本 根据版本号
git reset 命令既可以回退版本,也可以把暂存区的修改回退到工作区
用 git reflog 查看命令历史,以便确定要回到未来的哪个版本。
git add 命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行 git commit 就可以一次性把暂存区的所有修改提交到分支。
12.修改管理
要从版本库中删除该文件,那就用命令 git rm 删掉,并且 git commit
git checkout – test.txt 用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
补充学习: