github基础教程笔记

本文详细介绍了Git的基础操作,包括配置Git、初始化仓库、克隆、提交更新、忽略文件、查看历史、撤销操作、分支管理和远程仓库的使用。通过实例演示了如何在mac上配置GitHub、创建、切换分支、合并分支以及推送和拉取远程仓库的变更。同时,讲解了如何使用gitlog查看提交历史,以及如何通过gitdiff和gitstatus跟踪文件变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

git基础教程

mac电脑github打不开教程
基本的Gt工作流程如下:

  1. 在工作区中修改文件。
  2. 将你想要下次提交的更改选择性地暂存,这样只会将更改的部分添加到暂存区。
  3. 提交更新,找到暂存区的文件,将快照永久性存储到Gt目录。

Git自带一个git config的工具来帮助设置控制Git外观和行为的配置变量

配置

通过以下命令查询github配置文件

git config --list --show-origin

配置用户信息

git config --global user.name "John Doe"
git config --global user.email johndoe@example.com

如果使用了--global选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情,Git都会使用那些信息。当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有--global选项的命令来配置

配置文本编辑器(可忽略)

例如用Emacs

git config --global core.editor emacs

检查配置信息

使用git config --list命令来列出所有Git当时能找到的配置
可能会看到重复的变量名,因为Git会从不同的文件中读取同一个配置
这种情况下,Git会使用它找到的每一个变量的最后一个配置
通过输入 git config <key> 来检查Git的某一项配置

git基础指令

获取git仓库

通常有两种获取Git项目仓库的方式:

  1. 将尚未进行版本控制的本地目录转换为Git仓库;
  2. 从其它服务器克隆一个已存在的Git仓库。
将尚未进行版本控制的本地目录转换为Git仓库

初始化仓库
进入到当前目录,执行

git init

该命令将创建一个名为.git的子目录,这个子目录含有你初始化的Git仓库中所有的必须文件,这些文件是Git仓库的骨干。但是,在这个时候,我们仅仅是做了一个初始化的操作,你的项目里的文件还没有被跟踪
如果在一个已存在文件的文件夹(而非空文件夹)中进行版本控制,你应该开始追踪这些文件并进行初始提交。可以通过git add命令来指定所需的文件来进行追踪,然后执行git commit

git add *.c
git add LICENSE
git commit -m 'initial project version'

具体解释见后面部分

克隆仓库

命令为git clone <url>
例子

git clone https://github.com/libgit2/libgit2

也可自定义仓库名

git clone https://github.com/libgit2/libgit2 mylibgit

定义仓库名为mylibgit

记录每次更新到仓库

检查文件状态

指令

git status

查看哪些文件处于什么状态

使得查看的状态信息简化的指令

git status -s
git status --short
  • 新添加的未跟踪文件前面有 ?? 标记
  • 新添加到暂存区中的文件前面有 A 标记
  • 修改过的文件前面有 M 标记
跟踪新文件

指令

git add <files>

如果参数是目录的路径,该命令将递归地跟踪该目录下的所有文件
运行git add后即将文件储存在暂存区

忽略文件

创建一个名为.gitignore的文件,列出要忽略的文件的模式
.gitignore文件的编写规则如下

  • 所有空行或者以 # 开头的行都会被 Git 忽略。
  • 可以使用标准的 glob 模式匹配,它会递归地应用在整个工作区中。
  • 匹配模式可以以(/)开头防止递归。
  • 匹配模式可以以(/)结尾指定目录。
  • 要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反。

glob模式规则

  • 星号(*)匹配零个或多个任意字符;
  • [abc] 匹配任何一个列在方括号中的字符 ;
  • 问号(?)只匹配一个任意字符;
  • 如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配
  • 使用两个星号(**)表示匹配任意中间目录

例子

# 忽略所有的 .a 文件
*.a
# 但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件
!lib.a
# 只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO
/TODO
# 忽略任何目录下名为 build 的文件夹
build/
# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf
查看已暂存和未暂存的修改

查看尚未暂存的文件更新了哪些部分

git diff

git diff本身只显示尚未暂存的改动,而不是自上次提交以来所做的所有改动
查看已暂存的将要添加到下次提交里的内容

git diff --staged
git diff --cached
提交更新
git commit

编辑器会显示文本信息
默认的提交消息包含最后一次运行git status的输出,放在注释行里,另外开头还有一个空行,供你输入提交说明
也可以在 commit 命令后添加 -m 选项,将提交信息与命令放在同一行
例子

git commit -m "Story 182: Fix benchmarks for speed"
跳过使用暂存区域

git commit加上-a选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过git add步骤

移除文件

git rm
从已跟踪文件清单中移除,并连带从工作目录中删除指定的文件
如果要删除之前修改过或已经放到暂存区的文件,则必须使用强制删除选项 -f

另外一种情况是,我们想把文件从Git仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中。换句话说,你想让文件保留在磁盘,但是并不想让Git继续跟踪。当你忘记添加.gitignore文件,不小心把一个很大的日志文件或一堆.a这样的编译生成文件添加到暂存区时,这一做法尤其有用。为达到这一目的,使用--cached选项

git rm --cached README

git rm命令后面可以列出文件或者目录的名字,也可以使用glob模式

移动文件

不仅可以移动文件,也可以改名

git mv file_from file_to

查看提交历史

git log

具体参考此网站

撤销操作

重新提交指令
git commit --amend

第二次提交将代替第一次提交的结果

取消暂存的文件
git reset HEAD <file>...
撤销文件修改
git checkout -- <file>...

远程仓库的使用

查看远程仓库
git remote

列出你指定的每一个远程服务器的简写

git remote -v

会显示需要读写远程仓库使用的Git保存的简写与其对应的URL

添加远程仓库
git remote add <shortname> <url>
从远程仓库中抓取与拉取
git fetch <remote>

这个命令会访问远程仓库,从中拉取所有你还没有的数据。 执行完成后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看。
如果你使用 clone 命令克隆了一个仓库,命令会自动将其添加为远程仓库并默认以 “origin” 为简写。 所以,git fetch origin会抓取克隆(或上一次抓取)后新推送的所有工作。必须注意 git fetch 命令只会将数据下载到你的本地仓库——它并不会自动合并或修改你当前的工作。当准备好时你必须手动将其合并入你的工作
可以用git pull命令来自动抓取后合并该远程分支到当前分支

推送到远程仓库
git push <remote> <branch>
查看某个远程仓库
git remote show <remote>
远程仓库的重命名与移除

重命名

git remote rename

移除

git remote remove

打标签

列出标签
git tag

按照通配符列出标签需要 -l 或 --list 选项
例子

git tag -l "v1.8.5*"
创建标签

Git支持两种标签:轻量标签与附注标签
轻量标签很像一个不会改变的分支——它只是某个特定提交的引用。

而附注标签是存储在Git数据库中的一个完整对象,它们是可以被校验的,其中包含打标签者的名字、电子邮件地址、日期时间,此外还有一个标签信息,并且可以使用GNU Privacy Guard (GPG)签名并验证。通常会建议创建附注标签,这样你可以拥有以上所有信息。但是如果你只是想用一个临时的标签,或者因为某些原因不想要保存这些信息,那么也可以用轻量标签。

附注标签

在Git中创建附注标签十分简单。最简单的方式是当你在运行tag命令时指定-a选项
例子

git tag -a v1.4 -m "my version 1.4"

使用git show命令可以看到标签信息和与之对应的提交信息

轻量标签

不需要使用 -a、-s 或 -m 选项,只需要提供标签名字

后期打标签

可以在之后补上标签。要在那个提交上打标签,你需要在命令的末尾指定提交的校验和(或部分校验和)
查看校验和命令

git log --pretty=oneline
共享标签
git push origin <tagname>

删除标签

git tag -d <tagname>

但这需要push

git push <remote> :refs/tags/<tagname>

git push origin --delete <tagname>

git分支

创建分支

git branch

git branch命令总结

切换分支

git checkout

git checkout命令总结

项目分岔历史

git log --oneline --decorate --graph --all

会输出你的提交历史、各个分支的指向以及项目的分支分叉情况

合并分支

git merge

图形化工具解决冲突

git mergetool

git-scm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值