type
status
date
slug
summary
tags
category
icon
password
Git版本控制
[TOC]
git常用命令
git init
这可能是你创建新项目时要使用的第一个命令。它用于初始化一个新的、空的 Git 仓库。使用这个命令的语法非常简单:
执行
git init 命令后,Git 会在当前目录下创建一个名为 .git 的子目录,这个子目录包含 Git 用来跟踪版本控制所需的所有文件和目录。具体来说,包括以下文件和目录:HEAD文件:存储当前位置指针,指向当前工作区的分支。
config文件:存储仓库的配置信息,比如远程仓库的 URL ,你的邮箱和用户名等。
description文件:供 Gitweb 使用,显示仓库的描述。
hooks目录:保存在执行 Git 命令时触发的自定义 hooks 脚本。
info目录:用于排除提交规则,与 .gitignore 功能类似。他们的区别在于.gitignore 这个文件本身会提交到版本库中去,用来保存的是公共需要排除的文件;而 info/exclude 这里设置的则是你自己本地需要排除的文件,他不会影响到其他人,也不会提交到版本库中去。
objects目录:Git 的对象数据库。
refs目录:存储着分支和标签的引用。
index文件:用于追踪文件的更改。
logs目录:用于记录操作信息。
git clone
通常情况下,你已经有一个现有的 Git 仓库(有时托管在像 GitHub 或 Bitbucket 这样的网站上),并希望将其复制到本地计算机。在这种情况下,你需要使用的命令是
git clone。简单来说,这个命令用于创建现有仓库的副本或克隆:git status
Git 会持续监控您的项目工作目录中的变化,这些变化可能涉及创建新文件、添加文件以进行跟踪、删除文件、更改文件权限、修改文件名或内容等。您可以使用
git status 命令,查看 Git 在某个特定时间所记录的变化情况。git add
一旦在您的工作目录中对文件做出更改并通过 git status 命令确认更改完全正确,就可以将这些变化添加到 Git 的暂存区中。
您可以使用 git add 命令将单个文件添加到暂存区:
或者,如果您有多个更改的文件,您可以使用 -A 选项将它们全部添加到暂存区:
另外,您也可以使用单个点号代替 -A 选项:
git commit
一旦您的更改已经被暂存,就可以使用 git commit 命令将这些更改保存到 Git 仓库中。一个 Git commit 是一组文件更改,作为一个单元存储在 Git 中。
在此过程中,您应该提供一个清晰明确的提交信息,以便其他开发者能够轻松理解其目的:
一个常见的经验法则是使用祈使语气编写提交信息。
下面是一张图片,帮助您更好地理解 Git 中更改是如何从工作目录流转到暂存区,最终提交到仓库的:

git branch
您可以将 Git 分支看作是一系列提交或开发历程。实际上,分支名称只是一个指向特定 commit ID 的标签。每个 commit ID 都链接回其父 commit ID,形成了一条开发历史链。
git branch 命令就像一把瑞士军刀,它可以展示当前 Git 仓库中的所有分支。带有星号标记的分支是您当前所在的分支:
要创建一个新分支,只需使用以下命令并指定您的新分支名称即可:
git checkout
使用 git checkout 命令可以在不同的分支之间进行切换,它会更新您的工作目录以反映所选分支的最新版本:
此外,git checkout 命令还可以同时创建一个新分支并切换到该分支:
git merge
那么,您已经在新分支上进行了多次提交,完成了您的工作。接下来该怎么做呢?
通常情况下,这些更改应该合并回主代码分支(默认情况下通常称为 master 分支)。我们可以使用 git merge 命令来完成合并操作。
请注意,git merge 命令将指定分支中的提交合并到当前所在的分支中。因此,在运行该命令之前,您需要首先切换到要合并的分支上。
git push
到目前为止,我们运行的所有命令都只影响了本地环境。现在,是时候通过使用 git push 命令将您最新提交的更改推送到远程仓库(通常托管在 GitHub 和 Bitbucket 等网站上)与其他开发者分享了:
例如:
在该示例中,我们将 master 分支推送到名为 origin 的远程仓库(在 Git 中是远程仓库的默认名称)。
一旦您推送了更改,其他团队成员就可以看到它们、审查它们并将它们拉取到他们自己的本地 Git 仓库副本中。
git pull
git pull 命令与 git push 命令正好相反。您可以使用它将其他开发者所做的更改下载到您的本地仓库中:
上述命令将下载远程仓库中指定分支的新提交,并尝试将它们合并到您本地的该分支副本中。实际的命令将类似以下示例,使用 origin 远程仓库和 master 分支:
有趣的是,git pull 命令实际上只是
git fetch 命令和 git merge 命令的组合。其中,git fetch 命令用于将远程分支下载到本地仓库,而 git merge 命令用于将已下载的分支合并到本地副本中。git log
如果您想查看 Git 分支上所有提交的历史记录,可以使用 git log 命令。git log 命令按时间顺序显示所有提交的有序列表,包括作者、日期和提交信息,从最新到最旧:
若要按从旧到新的顺序列出提交,请使用 --reverse 选项:
如果您是一个视觉化的人,可以尝试使用以下命令选项,在终端中显示提交历史的图形化表示:
这对于查看分支在开发过程中如何分叉和合并回来非常有用。
git stash
有时候,您在工作目录中修改了一些文件,但是意识到需要先处理其他事情。然而,您又不想丢失已经完成的工作。在这种情况下,可以使用 git stash 命令将所有未提交的更改保存在工作目录中,以便稍后可以找回它们。
使用 git stash 命令后,您的工作副本将被清理(所有更改将消失)。但是不要担心,它们并没有丢失,git stash 只是将这些更改放在临时存储中,您可以使用 git stash pop 命令找回它们:
在这里,pop 子命令将重新应用存储在 stash 中的最后一个状态,以便您可以继续上次的工作。
git记住账号密码
记住账号密码
进入项目目录
然后会生成一个本地文件用于记录用户名和密码,这个文件我们无需关心
再次git pull一下,会让输入用户名和密码。这次输入之后以后就不会每次输入了。
清除用户名和密码
运行一下命令缓存输入的用户名和密码
- Windows主机
- mac
git远程仓库
添加远程仓库地址
修改远程仓库地址
删除远程仓库地址
新建远程仓库地址
查看远程仓库地址
SSH公钥
生成 sshkey:
按照提示完成三次回车,即可生成 ssh key。通过查看
~/.ssh/id_rsa.pub 文件内容,获取到你的 public key
复制生成后的 ssh key,通过仓库主页 「管理」->「部署公钥管理」->「添加部署公钥」 ,添加生成的 public key 添加到仓库中

添加后,在终端中输入ssh -T git@gitee.com
首次使用需要确认并添加主机到本机SSH可信列表。若返回
Hi XXX! You've successfully authenticated, but Gitee.com does not provide shell access. 内容,则证明添加成功
Git版本控制操作
创建本地Git仓库
将文件放到Git仓库
Git版本回退
Git版本前进
工作区和暂存区
工作区就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区暂存区就是工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区把文件往Git版本库里添加的时候,是分两步执行的:第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
撤销修改
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况: 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。总之,就是让这个文件回到最近一次git commit或git add时的状态。
删除文件
git tag
版本格式
主版本号.次版本号.修订号,版本号递增规则如下:
- 主版本号:当你做了不兼容的 API 修改,
- 次版本号:当你做了向下兼容的功能性新增,
- 修订号:当你做了向下兼容的问题修正。
git tag命令
git release
进入到项目仓库,选择release选项卡,可以点击create a new release/Draft a new release创建一个新的release
- 作者:NotionNext
- 链接:https://tangly1024.com/article/20ddb897-8f81-802e-bdab-e9a2b605c915
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。





