千家信息网

如何使用Git/Github

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"如何使用Git/Github",在日常操作中,相信很多人在如何使用Git/Github问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何使用Git/G
千家信息网最后更新 2026年11月02日如何使用Git/Github

这篇文章主要介绍"如何使用Git/Github",在日常操作中,相信很多人在如何使用Git/Github问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何使用Git/Github"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

前言

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

下载与安装

1.Windows/Mac OS版本下载 2.Linux中的安装
yum install git (部分Linux系统自带git)

Git初体验

通过前面小节的学习,我们已经基本上知道了git是干什么的,以及git的下载和安装等。
我们还想知道,git到底怎么去进行版本控制。
需求是:比如有一份文本文件,想要操作这个文本文件。我去不断的修改这个文件的内容,每次修改之后,我需要记录修改的历史记录。 在使用git进行版本管理之前,需要进行一个配置,这个配置是告诉git你的用户名以及你的邮件账号

小技巧:忘记命令的具体写法时,可以进行Tab键进行提示。
 

Git学前知识

不妨先来画图

工作区就是你当前使用的一个目录,比如"gupaogit"文件夹
版本库就是add以及commit之后的乱七八糟的东西

使用git,步骤:
  1. 下载与安装

  2. git config --global user.email/name

  3. git init 对一个文件夹目录进行git初始化操作,这个初始化就是为了让git对这个文件夹中的文件进行版本管理。
    初始化完成之后,在当前目录下会有一个.git文件夹,这个文件夹就是我们所说的版本库。
    现在就可以用git对其下的文件进行一个版本的控制,就是可以对它进行一个版本的回退,回到当前等等。

  4. 接下来你的操作就是
    无非在这个工作区或者仓库中创建文件,然后对文件进行一系列修改操作之类的。
    Git的要求是,你要让git帮你进行的版本的管理,必须先有一个文件夹,这个文件夹要被git进行初始化操作,这样才能进行一个git的版本管理。

Git基础操作

git status git add git commit 需求:在git工作区中新建一个文件,名称为"gupao.txt"。
git status:表示查看git工作区(仓库)中的一个状态
(1)nothing to commit

(2)当你新建了一个文件之后 ,如1.txt Untracked files: 未被追踪的文件

(3)当我们进行git add 1.txt之后

(4)当我们进行git commit -m 1.txt 之后
只有进入到提交区之后,我们的文件才能被git真正意义上管理起来
(5) 对应我们创建一个新文件的时候的状态
git add:就是将工作区中的内容add到暂存区
git commit:将暂存区的内容commit到提交区

要想让git对你的文件内容进行版本管理,必须经过两个步骤,第一个是git add,第二个是git commit。 可以随时随地使用git status进行工作区中状态的查看

Git log和版本切换

大家都知道git可以进行版本控制与管理。 如果你想要进行版本的切换的话,你需要知道的就是这个commitid,也就是说你要知道每一次提交的信息才可以,就要去查看这个每次的commitid是什么。

Git log 日志,也就是说查看git的日志信息

Commit Author :作者 就是你当初配置 git global --- user.name Date:提交的日期 根据每次的commitid进行一个版本的切换。 git reset --hard commitid(这个id可以根据git log查看日志信息去找到)

我觉得这样打印出日志信息太多了,能不能简化一下呢?

git log --pretty=oneline

补充的知识点: 我觉得我就是想要回退到上一个版本,今天修改了一些东西

直接回退到上一个版本 git reset --hard HEAD^ 回退到上一个版本 Git reset --hard HEAD^^ 回退到上上个版本

麻烦是,回退到之前的版本之后,最新的commitid没了,如果你的之前的操作窗口有,你复制过来进行

重点是要找到最新的一个版本的commitid即可。 git reflog

如果进行版本回退之后,发现commitid最新的没了,你可以使用git reflog进行所有的commitid的查询。   8 工作区暂存区和提交区 在工作区进行了修改,然后git status会有一个提示,告诉你下一步需要干嘛

正常的思维,你会进行git add 后悔当前的操作,git checkout -- gupao.txt 会撤销工作区中的一个修改,也就是说你不需要进行git add操作了。

对于已经在暂存区的内容,使用git checkout -- gupao.txt 不可行了 git reset HEAD gupao.txt 回到提交区中的最新版本

接下来需要做的就是再次使用git checkout -- gupao.txt,将修改拉回到工作区,把工作区的修改内容清空   9 初识分支

把每一次的提交,都用线连起来,你会发现,很连贯。

C/C++ 指针的概念

git reset --hard commitid HEAD 如果说内容已经add到暂存区,此时要想撤销的话,需要先回到最新的一个commitid上 HEAD HEAD^ HEAD^^ HEAD就表示当前最新的版本的commitid,也就是最新的指针指向

Master分支是主分支,也是git为你默认创建的分支

一定就有其他分支

Master分支指向的是最新的提交commitid,头指向指向的是我们的master分支。 但是git的强大之处远不止如此,而是有一个多人协作开发的概念。 不仅是一个单人开发进行版本控制,同时可以多人协作开发进行一个版本控制。 就是通过git的分支进行的。   10 详解分支 在主分支master上切出一个开发分支,比如叫"dev_wang" git checkout -b dev_wang; 创建一个分支

现在你所有的操作都是在一个新的分支上进行。

刚才一系列的操作都是在dev_wang分支上进行了,现在再次切换到主分支 Git branch可以查看当前所有的分支情况,并且可以看到目前所处的分支(*)

在不同的分支上进行的版本管理,只有在自己的分支上才会生效。

HEAD的一个补充:HEAD头指针指向的是当前分支最新的commitid

假设我们觉得一个分支没啥用了,想要删除该分支怎么办呢?

现在所处的分支是dev_wang,想要删除它的话,你必须在其他分支上。 这时候你只能强制性的删除该分支 git branch -D dev_wang

  11 分支合并和冲突解决 主分支master我们不会去动,只会用于版本的发布。 各自在自己的分支上开发完成之后,需要将开发的内容合并到主分支上去。这个时候成为merge。 需求:一个新的开发人员dev_zhang (1)git checkout -b dev_zhang; (2)进行文件的修改并且add,commit (3)此时在小张的分支上多了一个commitid,这时候需要把这个小张修改的内容进行版本的发布,就需要把小张的修改内容合并到master分支上。 切换到master分支,合并dev_zhang的开发内容 合并的操作:快速合并 在master分支上,git merge dev_zhang;

(4)git branch -d dev_zhang; //上一个小节我们这样去做的时候,它有一个不能删除的提示,这个提示是告诉你需要进行分支的合并。

当你的项目开发人员很多,2个,小张,小李,合作开发一个项目 需求:小张,小李合作开发一个项目,这个项目两个人负责不同的模块 小张:商品管理的模块 小李:订单管理的模块 master分支作为一个版本发布的分支,不应该进行直接在上面开发 (1)git checkout -b dev_zhang (2)git checkout -b dev_li

(3)分别在小张和小李的分支上进行开发之后 发现master分支上并没有小张小李的开发内容 (4)小张和小李的开发内容发布到master分支 分支的合并

合并的冲突的问题

需要手动解决冲突,并且再去进行add,commit的操作。 git checkout -b test

12 Git config和配置别名 在你刚装完git的时候,老师让你去配置了一个email name,只有这样你才能使用git git config配置git的命令 git config -l 查看所有的配置信息

这里所有的信息实际上都是整合出来的,整合哪边的呢? 仓库级别,全局级别,系统级别 优先级是什么
所谓的仓库级别的配置:当前仓库级别下的.git>config文件 全局级别的:当前用户之下表示的是全局级别的 系统级别:在我们的git安装目录下etc Git config --global --add user.name itcrazy2016 Git config --global --unset user.name 这个命令其实比较实用 Git status git add git commit Git log --pretty=oneline 这些命令太长了,能不能简化? Git st 表示查看用户状态 Git cm 提交commit Git log one 查看一行信息? 配置别名? git config --global alias.st status 表示用st代表status。   13 打标签和忽略文件 打标签: Commitid不容易记住,能不能用一种比较独特的方式去记住每个版本 118.222.113.253 这样访问网站方便? www.baidu.com 域名访问网站方便? Commitid as2731aa <------> 标签 想要给最新版本的id打上一个标签 -----git tag v1 将最新版本的commitid对应上v1 查看一下当前仓库的标签列表 git tag 给之前已经错过的commitid去打上一个标签,怎么操作? git tag v1pre d619d86 这个标签你看起来还是不够过瘾,你也可以给这个标签加上一个说明 Git tag v2.0 -m "这里打上了一个标签" 就得能够删除标签 git tag -d v1

忽略文件 创建了一个Person.class的类文件,发现git标注为Untracked file 未被追踪的文件 Git add Person.class 肯定是可以的 我希望这个文件不能被git管理起来 能不能让git将这个文件(这类文件)给忽略呢? .class git你不要帮我去管理.class的类文件 仓库的根目录下创建一个.gitignore 文件 这个规则你要让git能够看懂

告诉git让他不要帮你去管理这个文件了

14 本地仓库和远程仓库 假设主分支master已经存在,这时候多了一个开发人员,你怎样给他一个分支? 每个人要至少在自己的电脑上进行开发? 而这个master分支仅仅用于版本的发布的。 用一台公共的电脑作为一个远程仓库,供每个开发者使用,每个开发者可以去创建各自独立的分支进行开发,开发完成之后,把各自的代码推到远程仓库上。 局域网:一台远程仓库 私有的公共仓库 项目:很小,想要让所有开发者都参与进来,那么就应该有这样一台公共的让所有人都能访问的远程仓库。同时这样做的好处是:可以更加方便的管理开源代码。 大家都一起使用的仓库。

很显然是存在,GitHub 国外的远程仓库 世界各地的开发者都可以在上面进行自己代码的管理 码云 国内的远程仓库

问题是,你把代码放到他们上面,除非你交一些会员费,代码才不能让别人看见,不然你提交到你账号上的代码都公开的。 搭建自己的私有仓库的话,让别人不可见,怎么做呢?Gitlab

  15 GitHub和码云 Github 远程仓库 Gupaogit 本地仓库

把本地仓库gupaogit 上传到github上去进行。 (1)在远程仓库github创建一个对应的项目比如gupaogit repository仓库

16 操作远程和本地仓库 push,pull和clone。 git fetch:相当于是从远程获取最新版本到本地,不会自动merge 代码的内容推送 ,将本地的内容推送到具体的远程仓库上 本地的gupaogit -----> github/码云 gupaogit (1)要让两者有关联 在本地仓库中配置一下它和远程仓库的关系,它俩是一家人。 当前本地仓库是否有远程仓库,如果有,那么它的远程仓库是什么? git remote 本地仓库中:git remote add origin远程仓库的地址?git@github.com:itcrazy2016/gupaogit.git origin 本地仓库和远程仓库的地址进行一个关联
git push -u origin master 是推送代码,那么就不是指定远程仓库。 这样关联之后,接下来就是把代码推送到远程仓库上

(2)本地仓库和远程仓库进行关联之后,就可以进行的推送了 git push -u origin master 将本地仓库的内容推送到远程仓库

无论是推送还是拉代码,需要有这样一个权限,也就是说你目前使用的这台电脑是否安全,如果不安全,人家不会让你去推送

【没有权限的情况下】 需要添加权限 A. 需要在本地中生成一个ssh key ssh-keygen -t rsa -C "itcrazy2016@163.com" 在自己的计算中中增加一个安全ssh key 盖上了一个章,就表示你这个电脑认证后的ssh_key B.需要把这个key告诉github/码云 把公钥放到ssh key

保证数据传输的一个安全性

如果说是在其他分支进行的修改,需要进行一个分支的合并 要推送其他分支的,指定一下要推送的分支即可git push -u origin dev_zhang;

新来了一个哥们,小王,需要进行一个开发 需要把远程仓库的代码拉倒本地进行开发 (1)clone 克隆操作 前提是:sshkey也要添加完成 Git clone git@github.com:itcrazy2016/gupaogit.git

当远程仓库的版本内容如果和本地仓库的内容不一致,需要先git pull,把远程仓库的内容拉下来到最新版本才行,然后进行手动解决冲突

到此,关于"如何使用Git/Github"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

分支 仓库 版本 文件 开发 内容 管理 就是 代码 工作区 工作 标签 配置 小张 级别 控制 信息 文件夹 项目 推送 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 咖啡豆 保险科技 互联网保险 广东万易互联网科技有限公司惠州分公司 广东猪兼强互联网科技有限公司 高科技互联网 美国互联网科技巨头监管 腾讯阿里互联网科技 科技制造互联网公司 互联网科技金融 重庆科技学院互联网 来此购互联网科技有限公司 互联网科技公司有风险吗 速维有品互联网信息科技(苏州)有限公司 亳州好赞互联网科技有限公司 允成互联网科技有限公司融资 内蒙古九一互联网科技 阿里互联网科技企业 合肥互联网科技公司公章图片 昆明中奇联合互联网科技 上海旺乐尼互联网科技有限公司 互联网科技英文翻译 镁科技互联网资讯平台 深圳国际航运科技和互联网 崇明区互联网教育科技诚信经营 乌苏新华互联网科技做什么的 互联网科技和法律行业 银行科技岗属于互联网吗 互联网相关科技技术 互联网科技机房 杭州融税互联网科技有限公司
0