知行迭代
导航
首页
最近更改
随机页面
常用
分类目录
Linux命令
Mediawiki常用
电脑技巧
工具
链入页面
相关更改
特殊页面
页面信息
登录
查看“Git”的源代码
←
Git
页面
讨论
阅读
查看源代码
查看历史
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:[
[1]
]
您可以查看和复制此页面的源代码。
git是一个分布式版本控制软件,最初由[[林纳斯·托瓦兹]]创作,于2005年以GPL发布。最初目的是为更好地管理[[Linux]]内核开发而设计。 ==简介== ===时间轴=== *2002年,林纳斯·托瓦兹决定使用BitKeeper作为Linux内核主要的版本控制系统用以维护代码。 *2005年,Andrew Tridgell违反的BitKeeper使用原则,进行逆向工程,导致无偿使用BitKeeper的许可被收回。 林纳斯·托瓦兹决定自行开发版本控制系统替代BitKeeper,以十天的时间编写出git第一个版本。 *2005年07月11日,发布git 0.99 版 *2005年12月21日,发布git 1.0 版 *2014年05年28日,发布git 2.0 版 *2020年03月23日,发布git 2.26 版 === 仓库托管服务 === 很多公司提供了Git仓库的托管服务。 {| class="wikitable" ! 名称 ! 公司 ! 描述 |- | [[GitHub]] | 微软 | 提供付费账户和免费账户,都可以建立公开或私有的代码仓。。截止2023年,Github是世界上最大的代码托管网站和开源社区。 |- | [[CODING]] | 腾讯 | 提供付费账户和免费账户 |- | [[GitLab]] | GitLab | |- | Gitee | OSCHINA | |} === 安装 === Linux中一般默认已经按照git, Windows中安装如下; *1.下载安装程序,https://git-scm.com/download/win *2.点击安装 {{了解更多 |[https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git 《Pro Git》 中文版V2:1.5 起步 - 安装 Git] }} == 快速入门 == === 基本原理 === {{#drawio:git工作原理}} {{了解更多 |[https://git-scm.com/book/zh/v2/起步-Git-是什么? 《Pro Git》 中文版V2:起步-Git-是什么?] }} === 使用示例 === <syntaxhighlight lang="bash" > # 设置一次Git的全局用户名和邮箱 git config --global user.name "Your Name" git config --global user.email yourname@example.com # 在一个目录下,初始化git仓库 # 会在该目录自动生成一个.git目录 git init </syntaxhighlight> === .git 目录 === 所有git工作目录下都有个<code>.git</code>目录,该目录包含几乎所有git操作和数据内容。当使用<code>git init</code>初始化目录会自动生成该文件夹。 {| class="wikitable" ! 名称 ! 描述 |- | config | 该项目的特有配置, |- | | |- | | |} {{了解更多 |[https://git-scm.com/book/zh/v2/Git-内部原理-底层命令与上层命令 《Pro Git》 中文版V2:10.1 Git 内部原理 - 底层命令与上层命令] }} ==配置== {| class="wikitable" |- ! 命令 ! 描述 |- |查看配置 |<code>git config --list</code>查看所有配置信息<br /><code>git config user.name</code> 查看某一项配置 <br /> <code>git config --list --show-origin</code> 查看所有的配置以及它们所在的文件 <br /> |- |设置用户信息 |配置全局用户名称和邮箱,<syntaxhighlight lang="bash" > git config --global user.name "Your Name" git config --global user.email yourname@example.com </syntaxhighlight> 如果某个项目想要使用不同的用户名称与邮件地址时,在项目目录,使用不带<code>--global</code>设置用户信息。 |} {{了解更多 |[https://git-scm.com/book/zh/v2/附录-C:-Git-命令-设置与配置《Pro Git》 中文版V2:附录 C: Git 命令 - 设置与配置] }} ==创建仓库== {| class="wikitable" |- ! 命令 ! 描述 ! 示例 |- | git init | 初始化一个Git仓库 | <code>git init myproject</code> |- | git clone | 克隆一个Git仓库到本地 | <nowiki>git clone https://github.com/git/git.git</nowiki> |- |} ==快照== {| class="wikitable" |- ! 命令 ! 描述 ! 示例 |- | git add | 添加文件到暂存区 | <code>git add README.md</code> </br> <code>git add .</code> |- | git commit | 提交更新到本地仓库 | <code>git commit -m "Update README"</code> |- | git status | 查看文件状态 | git status |- | git diff | 比较工作区和暂存区差异 | git diff |- | [https://git-scm.com/docs/git-reset/zh_HANS-CN git reset] | 重置当前HEAD到指定状态。可以使用<code>git reflog</code>或<code>git log --oneline</code>查看要回滚的版本。 <br /><br />参数:<br /><code>--soft</code>:本地仓库回滚,但是暂存区和工作区保持不变。<br /><code>--mixed</code>:本地仓和暂存区回滚,默认参数,等同于git reset。<br /><code>--hard</code>:本地仓、暂存区和工作区都回滚。注意,如果工作区有没有提交的代码就找不回。 |<code>git reset --soft HEAD~1</code> <br /><code>git reset HEAD~1</code><br /><code>git reset --hard HEAD~1</code> <br /> |- | git rm | 从暂存区和工作区删除文件 | git rm README.md |- | git mv | 移动或重命名文件、目录 | git mv file.txt file2.txt |- | git clean | 删除工作区未跟踪文件 | git clean -df |} {{了解更多 |[https://git-scm.com/book/zh/v2/附录-C:-Git-命令-快照基础《Pro Git》 中文版V2:附录 C: Git 命令 - 快照基础] }} ==分支管理== {| class="wikitable" |- ! 命令 ! 描述 ! 示例 |- | git branch | 列出/创建/删除分支 |<code>git branch</code>列出所有分支 </br> <code>git branch -v</code> </br><code>git branch dev</code>创建名称为dev分支 |- | git checkout | 切换分支,或者检出内容到工作目录。 | <code>git checkout dev</code>切换到dev分支 <br /><code>git checkout -b main</code> 创建一个新的 main 分支并立即切换到该分支。 <syntaxhighlight lang="bash" > git checkout -b main git push origin main git branch -d master </syntaxhighlight> 将master分支重命名为main分支。1.创建 main 分支。2.main 分支推送到远程存储库,并覆盖旧的 master 分支。3.删除旧的 master 分支 |- | git log | 查看提交历史记录 |<code>git log</code> </br><code>git log --oneline</code> |- | git tag | 打标签,创建、列出、删除标签。 | <code>git tag</code>列出标签 </br><code>git tag -l "v2.3.5*"</code>列出v2.3.5开头标签 |- | git merge | 合并一个或者多个分支 | |- | git mergetool | 解决合并冲突 | |- | git stash | 暂存当前工作目录状态 | |} {{了解更多 |[https://git-scm.com/book/zh/v2/附录-C:-Git-命令-分支与合并《Pro Git》 中文版V2:附录 C: Git 命令 - 分支与合并] }} ==远程== {| class="wikitable" |- ! 命令 ! 描述 ! 示例 |- |git clone |克隆远程仓库 | |- |git remote -v |查看远程仓库列表。用于查看当前仓库已经配置的远程仓库列表,以及它们的URL。 |<code>git remote -v</code> |- |git remote show <远程仓库名> |查看特定远程仓库的详细信息。默认情况下,有一个 origin 的远程仓库名,它是 Git 的默认远程仓库名称。多个远程仓库时,可以使用不同的名称来管理。 | <code>git remote show origin</code> 显示origin远程仓库的信息,包括远程仓库地址,分支等信息。 |- | git remote add <远程仓库名> <URL> | | |- | git fetch <远程仓库名> | 获取远程代码 | |- |git pull <远程仓库名> <分支名> | 拉取远程代码及立即合并,相当于git fetch后执行git mergin。 | <code>git pull origin main</code> 从远程的"origin"仓库的"main"分支中拉取最新的更改并将其合并到你的本地分支中。 |- | git push <远程仓库名> <本地分支名>:<远程分支名> |推送本地更改 | <code>git push origin main</code> 将本地当前分支推送到远程origin仓库的main分支。 <br /> <code>git push origin --delete test</code>删除远程名称为test的分支,注意先备份数据。 |- | | | |- | | | |} ==设置== === Linux终端显示当前Git分支 === 进入用户的Home目录,编辑.bashrc文件 <syntaxhighlight lang="bash"> cd ~ vim .bashrc </syntaxhighlight> 将下面代码加入.bashrc文件末尾,并保存: <syntaxhighlight lang="bash"> function git_branch { branch="`git branch 2>/dev/null | grep "^\*" | sed -e "s/^\*\ //"`" if [ "${branch}" != "" ];then if [ "${branch}" = "(no branch)" ];then branch="(`git rev-parse --short HEAD`...)" fi echo " ($branch)" fi } export PS1='\u@\h \[\033[01;36m\]\W\[\033[01;32m\]$(git_branch)\[\033[00m\] \$ ' </syntaxhighlight> 保存并退出,执行加载命令 <syntaxhighlight lang="bash"> source ./.bashrc </syntaxhighlight> ==资源== ===官网=== *Git 官网:https://git-scm.com/ *Git 文档:https://git-scm.com/doc * Git 文档 参考 https://git-scm.com/docs *Git 文档:书籍《Pro Git》中文版 :https://git-scm.com/book/zh/v2 ===文章=== *[https://zh.wikipedia.org/wiki/Git 维基百科:git] [[分类:编程工具]]
本页使用的模板:
模板:了解更多
(
查看源代码
)
返回至“
Git
”。