[编程开发] 新手该如何使用 GitHub?

[复制链接]
pcman 发表于 2023-10-3 19:40:39|来自:北京 | 显示全部楼层 |阅读模式
我是一个编程新手,刚刚接触GitHub,目前仅仅是把它作为自己的代码仓库。但我知道GitHub的魅力在于共同完成项目,但我现在对GitHub有以下几个困惑:
1.比如我看到一个有趣的项目,那么我该如何为这个项目做贡献呢?我是指,这个项目本身已经完整了,核心的一些架构我暂时是力不从心的,那我还能为这个项目做什么呢?
2.我看到很多刚学编程的人说用GitHub来学习编程,但我觉得大多数的项目即便你fork下来也是看不懂的吧?那么初学者如何找到适合自己的项目来学习呢?
谢谢。
全部回复5 显示全部楼层
oopl001 发表于 2023-10-3 19:41:01|来自:北京 | 显示全部楼层
首先呢,非常感谢小伙伴的邀请。另外,下面这条留言确实也激起了我很大的写作兴趣,如下:


点赞人数还不少,这说明还真有不少工科生不会用 GitHub,你看大小写都没有区分(手动狗头)。所以我就很想借这个答题的机会,按照我自己的方式给广大的 GitHub 新手科普下,“到底该如何使用 GitHub?”
插个楼,我这里有一份 GitHub 上星标 115k+ 的 Java 教程,里面涵盖了 Java 所有的知识点,包括 Java 语法、Java 集合框架、Java IO、Java 并发编程和 Java 虚拟机,内容不多,只讲重点。
GitHub 星标 115k+的 Java 教程,超级硬核!01、GitHub 是什么

维基百科是这样定义的:
GitHub 是通过 Git 进行版本控制的软件源代码托管服务平台,由 GitHub 公司的开发者 Chris Wanstrath、PJ Hyett 和 Tom Preston-Werner 使用 Ruby on Rails 编写而成。
那 Git 又是什么呢?
再来看维基百科的定义:
Git 是一个分布式版本控制软件,最初由林纳斯·托瓦兹创作,于 2005 年以 GPL 协议的形式发布,最初目的是为更好地管理 Linux 内核开发。
简单点说就是,Git 是一个命令行工具,一个分布式的版本控制系统。它可以在背后默默地帮你管理和跟踪代码的历史版本,就好比一个时光机,让你在代码出错时不至于手足无措,快速回退到之前的历史版本。
想了解更多 Git 方面的知识,可以点击这个链接跳转:
https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-Git-%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F
很多初学者误认为 Git 就是 GitHub,但其实不是的。GitHub 是一个代码托管网站,只不过背后使用了 Git 作为版本管理工具。主要服务就是将你的项目代码托管到云服务器上,而非本地硬盘上。类似的网站还有 http://gitlab.com 和 http://gitee.com(国内版,中文名叫码云)。
02、GitHub 可以做什么
Do whatever you want.
上面这个答案是创始人之一 Chris Wanstrath 说的,我表示无法反驳。
1)托管代码
GitHub 会自动帮你记录代码的修改,在必要的时候,能够帮助你快速回退到之前的历史版本。
2)搜索开源项目
GitHub 是世界顶级开发者的聚集地,在这里你几乎可以找到任何你想要的东西。上面分享有许多优秀、著名的开源项目,在遵守其 License 的前提下,你可以免费使用、下载这些开源项目。这也是 GitHub 最为吸引人的地方。
通过下面这个网址可以查看 GitHub 上 TOP 200 的优质开源项目:
https://www.githubs.cn/top
其中就包含了我前段时间给大家推荐的 GitHub 上最励志的计算机自学教程:


中文版离线 PDF 下载地址如下所示:
https://pan.baidu.com/s/1tOyMq3sGa2-xuajGJJYwOQ,提取码:om0i
关于优质项目的搜索,你可能需要一些技巧:
https://juejin.im/post/6891056415440535565
你可能还需要一些方法:
https://www.zhihu.com/question/20084458/answer/1368411995
3)使用 GitHub Pages 搭建一个免费的博客网站
GitHub Pages 提供静态网页托管服务,它直接从 GitHub 上的仓库获取 HTML、CSS 和 JavaScript 文件,然后构建并发布网站。
配合 Jekyll、Hexo、Hugo、Pelican、Gridea 等第三方静态模板系统可以快速搭建一个漂亮的博客网站。比如说我的个人博客用的就是 Jekyll,访问地址如下:
http://www.itwanger.com
4)学习,提升能力
GitHub 有太多太多优质的教程资源,只要你肯去挖掘。下面这个网址列出来的资源都不错。
https://www.githubs.cn/awesome
比如说面试和刷题:


下面这个网址列举了一些非常不错的书单:
https://github.com/itwanger/JavaBooks
5)提升影响力
你可以将自己的开源项目发布到 GitHub 网站上,项目越受欢迎获得的 Star 越高,说明业界对你的能力越认可。一份优秀的 GitHub 主页,能为自己的简历润色不少。
我最喜欢的两个实战项目(推荐过无数次了),来自我的好朋友江南一点雨和 macrozheng。
微人事(19.2k star)的地址:
https://github.com/lenve/vhr
电商系统(43.1k star)的地址:
https://github.com/macrozheng/mall
当你看到这么多 star 的项目,并且真的是名副其实的好项目,是不是就特别佩服它们的作者,实话实说,我既是他们的朋友也是他们的粉丝。
6)其他

  • 图床,单纯地把 GitHub 做一个网盘。
  • BBS,单纯地交友互动聊天吹逼。
  • 翻译,之前有阿里的朋友就利用 GitHub 重写了一本《Java 并发编程》,在线访问地址:
https://github.com/RedSpider1/concurrent
离线版的 PDF 下载地址:
https://pan.baidu.com/s/11Z-IfAPEZNFWp_mAtqDIKw,提取码:drjx
03、注册 GitHub 账号

说了这么多 GitHub 的好处,还等什么,赶紧去注册一个 GitHub 账号吧!
https://github.com/join
一个 GitHub 账号除了可以作为交友的名片,当然也可以用来登录一些英文的学习网站,比如说 GeeksforGeeks:


04、下载 GitHub 桌面版

当然可以直接在 GitHub 网页上操作,不过,对于新手来说,一个 GitHub 桌面版更方便、更直白、更傻瓜式一些。
https://desktop.github.com/

05、创建新项目

我现在要写一个《教妹学Java》的专栏,需要一个仓库来存储代码,怎么做呢?
打开 GitHub 桌面版,选择「File」→「New Repository」。然后填写仓库名、简介,选择仓库存放的本地路径,就可以点击「Create Repository」 创建新项目了。


创建完成后,可以在网页端看到该仓库。


(咦,怎么刚创建就有 star 了?)
06、fork 项目

如果你在逛 GitHub 的时候,发现了一些不错的项目,想占为己有,那太方便了,只需要一个 fork 就能搞定。
前几天,我发现了一个很有意思的项目:state-of-the-art-shitcode,中文译作垃圾代码书写准则。不过,代码示例是用 JavaScript 编写的,并且中文翻译得很烂。


怎么办呢?fork 它,然后就可以重制成 Java 版,并且按照我的风格进行翻译。


07、克隆项目到本地

GitHub 的一个好处就是,它把项目存放在云端,当你需要的时候,只需要克隆到本地就可以了。
打开 GitHub 桌面版,选择「File」→「Clone Repository」。 可以直接克隆你账号下的项目,包括你创建的、fork 的、star 的。


也可以通过 URL 的形式进行克隆,这时候,还可以指定码云上的项目进行克隆。


08、编辑项目

建议你在电脑上安装 Sublime Text,一款颜值非常高的文本编辑器,安装成功后,GitHub 桌面版默认自动使用它来关联项目。


打开后,是这样的(见下图),不得不说,颜值真的高。


编辑一段文字后保存,可以在 GitHub 桌面版看到发生变化后的文件。


填写文件更改后的描述就可以点击「Commit to master」(GitHub 从 10 月份起将 master 更名为 main)按钮提交了。


点击「Push origin」 可以同步到 GitHub 云端仓库。
09、回退到历史版本

如果一不小心提交错了,怎么办呢?
点击「History」 面板,找到你要回退的历史版本,右键选择「Revert this Commit」。


再次点击「Push origin」就可以了。


10、同步云端

GitHub 可以多人协作,如果本地想和云端保持同步,可以在 GitHub 桌面版上点击「Fetch origin」


如果发现本地和云端有不一样的地方,就可以点击「Pull origin」 从云端拉取了。


11、还想进阶

通过以上这些基本操作,我想你一定会用 GitHub 了。


反正入门嘛,先不要去管 issue 啊、pr 啊、wiki 啊,能够迅速地通过实战得到反馈对于学习一门新的技能来说实在是太重要了。只要入了门,有了信心,你会爱上 GitHub 的。
如果你不满足于现状,还想更进一步,可以到 GitHub 官方按照课程进行学习。
https://lab.github.com/

除此之外,我再推荐给你一本不错的入门书籍《GitHub入门与实践》:


我是 @沉默王二 ,码字不易,希望你们能够喜欢,如果能够对你起到一点点帮助,那就太好不过了!温馨提醒一点,记得让它躲进收藏夹吃灰哦,顺带点个赞就更好了,你最美你最帅!
qwertlina 发表于 2023-10-3 19:41:35|来自:北京 | 显示全部楼层
借用作者 @珊姗是个小太阳    的一篇文章来说   原文链接:如何使用 GitHub?
什么是 Github ?
必须要放这张图了!!!


(图片来源GitHub 是怎样的一个存在? - Deep Reader 的回答)
Git 是由 Linux 之父 Linus Tovalds 为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。
好吧,我相信看到这里你已经晕了,写这些教程的人都是几年以上的程序员呀,他们往往直接就告诉你所有命令的含义或者整个体系。
专家盲点(expert blind spot)就是对一个事物知道的越多,就越发不记得“不知道这个事”的情形。
简单来说,Git 是一个管理你的「代码的历史记录」的工具。
我不是程序员为什么要学这个啊啊啊!又不要管理代码们!


别急,虽然 github 学习门槛高,一会你就知道为什么人人都应该会这个啦!
学习步骤

注册安装
去官网注册一个账号(这个你应该会,恩就不放链接了)
然后,下载一个GitHub Desktop mac客户端是最方便的啦!(命令行什么的真的是会越来越晕!先别管他们!)
step1:创建新项目
我们三个人在不同的城市要远程共同写一本书,要有一个漂亮的笔记本吧?


「repositories」就是你的笔记本们。你只需知道 Repository 是个放项目的地方就行。有时候会出现 Repositories,是多个 Repository 的意思。
**fork**
如果你不想新建一个笔记本,看到小四之前写过一个好到炸裂的文章,想把他的直接全部偷过来,修改修改就成你自己的文章了,这应该怎么办呢?
github 还提供了一个很赞的功能叫做 fork ,你只需要点击这个神奇的按钮,就可以把他的「笔记本」变成你自己的啦!任意修改都可以哦~


step2:把「笔记本」克隆到本地
「笔记本」在云端,你要把它摘下来放到自己的电脑上写小说才方便呀,在这里我们叫「clone」是不是很形象?步骤如图:


或者是直接去我们的客户端


step3:可以开始写作啦!
你的笔记本里已经自动有一个文档了,这个时候让我们回到网页版[微笑脸]
你只需要在 web 端点开这个README.md可以开始在里面写你的小说了。


或者直接点开刚刚 clone 到电脑上的文件夹直接在里面写。
ps:需要注意的是,文本支持 markdown 格式,可以先参考这个献给写作者的 Markdown 新手指南。
step4:上传你写的小说
在本地写完之后你要上传到云端让我和小四都能看见你写出什么幺蛾子了吧?
回到客户端,你发现有变化!!!


没错,在你头像旁边给你这次提交内容起一个名字,以后如果再次寻找的时候会很方便。然后点下面的 Commit to master,还有右上角的 Sync 就好啦!
step5:回退到之前的版本
夜深人静的时候,我趁着你们都在睡觉把小说的结局偷偷地改成女主死掉了!
你醒来觉得我这结局改的也太悲伤了,完全不能接受!结局必须要和之前那样王子公主幸福的生活在一起的 happy ending!
问题又来了,怎么退回到我修改结局之前的 happy ending?
还是刚刚那个客户端,选择History 然后点击小齿轮,选择潇洒地点 roll back to this commit!
你又回到happy ending的状态啦!!


step6:
小四写了一章华丽无比的番外,你要更新本地的小说和他写的保持一致怎么办?
git pull



知道这些基本操作入门应该够了,我们来回顾一下!


入门初期迅速得到一些正反馈对于学习一门新技能来说实在是太重要了!尤其是编程这么炫酷的事情!
所以先不要管什么复杂的 issue 呀 wiki 呀乱七八糟的操作,按照上面的一步一步来,如果遇到什么问题 google 之,一般都会解决的。
有一个段子不就是说,当你遇到问题去找最高级的工程师,他们一般都会直接 google 吗?而且自带的帮助手册也是解决问题的好办法,比如你要新建一个 branch=》Create a new branch with git and manage branches · Kunena/Kunena-Forum Wiki · GitHub
这种遇到问题先自己尝试解决的小技巧,也是我自从学编程以来最大的收获。
除了写代码你还可以用 github 做什么?

回到文章开头,我又不是程序猿不用写代码玩这个干啥?
你有没有碰到过团队里几个人共同协作写一个文档的时候?或者说需要反复修改的东西?比如最简单的写论文,用 word 保存一个一个版本 e-mail 给 boss?下次再找上次修改了什么地方简直要死啊有木有!!!
github 说白了就是一个「版本控制工具」。我们所谓的「回退」到历史记录,随时查看更改了什么地方,利用这个功能可以做的事情简直太多啦!
就像 github 其中一位创始人[Chris](defunkt (Chris Wanstrath) · GitHub)也详细描述了[GitHub初创的前因后果](Startup Riot 2009 Keynote 路 GitHub),他说道:
Do whatever you want.
所以不是程序猿可以用这个来做什么呢?

1、写书
和 33 一起写小说的例子,还记得吧?几个人你一章我一章共同修改一本书,或是几个出版社的编辑对新书进行校对,利用这个神器就可以随时看到哪里出现了问题和更改。如果想自己写书的话 gitbook 也是不错的选择(又是一个坑。。)
2、写文档神器
身为科研狗、产品狗、射鸡湿的你,是不是经常写文档?一个成熟的文档可能会有好几个版本,需要不断地迭代,然后不断提交给老板看哪里需要修改。在不同版本间自如切换就要用到git branch和git rebase了。
想想看,用 git 的分支管理不比拷贝粘贴更方便吗?
3、健身
有个哥们为了激励自己健身把每日计划都放上去了,还可以邀请其他人一起来相互监督!
hoosin/EveryDaySport · GitHub
4、找男/女票
没错,看这个项目!利用众包的形式一起罗列男/女友条件的 list 然后试图自己开发出一个男/女票233333
YixuanFranco/YourBoyfriend · GitHub
5、用GitHub搭建博客、个人网站或者公司官网
一个有自己域名的独立博客,是不是很帅?!
GitHub本身提供免费的托管服务,又提供了贴心的 Pages 功能,可以绑定你自己的域名,免费、高效、不限流量,做一个个人页面绰绰有余。
Jekyll 的教程和我自己的博客会稍后放出。。(先给自己挖个坑)
6、用GitHub协作翻译
苹果官方发布的各种官方手册,比如最近开源的 Swiftnumbbbbb/the-swift-programming-language-in-chinese · GitHub 就是国内一个自发组织起来的团队,30多个人用9天时间即将翻译和校对工作全部完成,他们每人都还有自己的事情,上班、上线、创业,这么大的工作量在以往简直是不可能完成的任务!
7、项目管理
GitHub最初是为了开发的管理而生,当然也就具备了项目管理的潜质,特别是与开发密切联系的项目中,它的优势尽显。比如这篇文章介绍了如何使用GitHub结合 Trello 等其它工具进行项目管理:使用GitHub进行团队合作。当然,GitHub还是很偏重开发的管理,一般的项目管理还是适合使用 wortile 之类的产品。
8、科研项目及数据
较早的arXiv、PLoS之外,较有气象的可以推荐mendeley、开放期刊目录
教育方面:

  • OpenStudy:一个社会性学习网络,通过互助来更好地学习,主题涉及到计算机、数学、写作等。
  • openhatch: 通过练习、任务等帮助新手更好地进入开源社区
9、个人简历
GitHub上的代码无法造假,也容易通过你关注的项目来了解你的知识面的宽度与深度。现在越来越多知名公司活跃在GitHub,发布开源库并招募各类人才,例如:Facebook、Twitter、Yahoo ...
开始有了第三方网站提供基于GitHub的人才招聘服务,例如:
GitHire:通过它,可以找出你所在地区的程序员。
Gitalytics.com:通过它,能评估某位程序员在GitHub、LinkedIn、StackOverflow、hackernews等多个网站的影响力。
甚至专门有一个项目就是自动根据你的 GtiHub 公开项目创建个人简历:
我们可以使用 Git 以及 GitHub 做哪些事情? - Kane Blueriver 的回答
10、设计资源库
做 ppt 不知道到哪里去找高质量美图?
最近半年初入设计圈,收集了不少 bookmark 想在年底来一个总结。 于是自己创建了这个Design- Resource List 项目,旨在让更多的设计师找资源变得有章可循。
timmy3131/design-resource · GitHub
11、Explore · GitHub 更多好玩的内容等你自己发现哦
你在 GitHub 上看到过的最有意思的项目是什么? - 调查类问题
更多高阶教程:

如果你已经不满足于上面的基础知识了,欢迎探索更高级的玩法!
1、GitCafe /Help
2、[git简明指南](git - the simple guide)墙裂推荐!漫画的形式很形象(恩我承认比我画的好看多了)
3、在线交互学习 github 的网站Learn Git Branching 这个也很好玩~
4、[GitHub自身的官方博客](The GitHub Blog · GitHub)
5、git-flow 备忘清单
入门书籍推荐:
GitHub入门与实践 (豆瓣)比较基础
Pro Git (豆瓣) 更高级的教程,很全面!
对了对了,还有阳志平老师的两篇非常全面的旧文(这么称呼好生疏啊2333)
如何高效利用GitHub
Git与Github入门资料
(本文转载已经过作者授权)

看完这篇内容后,相信以下三件事,也会给你带来帮助:
1、点赞,让更多小伙伴能看到这篇内容,你的点赞是我持续创作的动力
2、提升自己,CSDN放出了大量免费课送给正在阅读的你,包含Python、Java、人工智能、算法、机器学习等热门领域,只要你想学,这里都有!
戳下方链接查看:
https://edu.csdn.net/course/index?is_member=1&is_free=2?utm_source=eduxy_zhihuyl_mfk_0608
3、关注【程序员知识圈】,更多面试题、面试技巧等优质内容等你来撩!
lx111 发表于 2023-10-3 19:42:04|来自:北京 | 显示全部楼层
8本电子书免费送给大家,见文末!
今天给大家推荐几个GIthub上新手也可以很快掌握的项目,甚至有不需要任何技术的学习教程!



项目:from_coder_to_expert
作者:wangbojing
介绍:wangbojing整理了上百份的企业大牛内部pdf和PPT,包括不仅限于新浪微博redis优化历程、京东分布式K-V存储设计与挑战、阿里万亿级数据洪峰下的消息引擎、滴滴统一资源调度平台建设实践、百度基于Druid的大数据采集即计算实践、爱奇艺广告大数据实践、腾讯优图深度学习在图像审核的应用..........等等等等尽在其中
把技术大牛作为自己职业生涯规划目标的你一定不能错过!! 别忘点赞、收藏哦!




项目:Student-resources
作者:ivmm
介绍:学生可以用其特殊身份享受到许多的福利,本项目作者汇总了各类学生身份可以享受到的优惠,包括GIthub学生包、Microsoft imgine学生包、AWS学生包、阿里云校园计划、华为云校园计划、百度云校园计划、购买苹果、微软大疆等产品也可以享受到优惠。


项目:you-get
作者:soimort
介绍:身为一名自媒体运营或者电影、电视剧爱好者,这个项目就是一个神器,它可以帮助你下载并保存喜欢的视频,可以随时浏览的同时避免了广告的打扰。



项目:getAwayBSG
作者:Jinnrry
介绍:以下为作者的自述:项目起因,大约2年前,我大学毕业时,初入社会,完全不知道要到哪里去。于是当时抓取了各个城市的招聘、租房数据,分享了各个城市哪里工作机会多,哪里租房便宜,哪里大企业多...大约半年前,又到毕业季,看见很多人跟我当初一样讨论薪资,租房相关的东西,于是我想起了当时的这个项目,然后翻出当时的项目,改了改,最终开源出来,希望给大家一些参考。爬虫抓取了目前抓到了18W+全国各个城市的招聘数据与200W+全国各地的房屋数据。租房和二手房数据,我使用了Colly框架,抓的链接租房和二手房页面。
总的来说对于刚毕业的小白这个项目时非常有用的!!!!
项目:CS-Notes
作者:CyC2018
介绍:技术面试必备基础知识、Leetcode题解、后端面试、Java面试、春招、秋招、操作系统、计算机网络、系统设计。


本文作者:yzn
配图来自GitHub相关项目、相关新闻报道、视频来源见文中、部分图片基于CC0协议,如有争议可联系。
↓ ↓ ↓以下8本书电子版免费领,直接送 ,想要哪本评论区说声,我小窗给你↓ ↓ ↓



sewell 发表于 2023-10-3 19:42:48|来自:北京 | 显示全部楼层
这里推荐下,实验楼的《Git 与 Github 入门实践》课程。本着实用的原则,针对零基础同学,以图文的形式详细介绍了 Git & GitHub 结合使用的基本操作。
Git 与 GitHub 入门实践以下节选部分内容先睹为快!
一、在 Github 上创建仓库
1.首先,打开 GitHub 注册个人账户并登录。登录后,在个人主页的右上角点击 New repository 创建新的仓库:




2.打开页面如下图所示,填入相关信息。注意下图紫色框中有两个下拉按钮,左边的用来选择忽略文件,右边的用来选择所属协议,这两项可以不选,后面的课程会讲到。




3.点击绿色按钮创建新的仓库,成功后自动跳转到新建仓库的主页面,如下图所示:




二、克隆 GitHub 上的仓库到本地
现在克隆前面我们在 GitHub 上创建的仓库,使用 git clone + [仓库地址] 命令即可,这是标准的克隆仓库命令。
1.点击下图绿色按钮,再点击紫色框中的按钮即可复制仓库地址,当然复制上面地址栏中的内容也是一样的。


2.克隆仓库到本地:


3.进入仓库主目录,如下图所示,仓库主目录中有个 .git 隐藏目录,它里面包含了仓库的全部信息,删掉这个目录,仓库就变成普通的目录了。进入到仓库目录中,命令行前缀发生了一些变化,出现了红色的 master ,它就是当前所在的分支名:


4.当我们在 GitHub 上创建一个仓库时,同时生成了仓库的默认主机名 origin,并创建了默认分支 master。GitHub 可以看成是免费的 Git 服务器,在 GitHub 上创建仓库,会自动生成一个仓库地址,主机就是指代这个仓库,主机名就等于这个仓库地址。克隆一个 GitHub 仓库(也叫远程仓库)到本地,本地仓库则会自动关联到这个远程仓库,执行 git remote -v 命令可以查看本地仓库所关联的远程仓库信息:


Git 要求对本地仓库关联的每个远程主机都必须指定一个主机名(默认为 origin),用于本地仓库识别自己关联的主机,git remote 命令就用于管理本地仓库所关联的主机,一个本地仓库可以关联任意多个主机(即远程仓库)。
5.克隆远程仓库到本地时,还可以使用 -o 选项修改主机名,在地址后面加上一个字段作为本地仓库的主目录名,举例如下:


6. 另一个在其它 Git 教程中常见的命令 git init ,它会把当前所在目录变成一个本地仓库,因为有 GitHub 的存在,这个命令在我们的生产生活中用到的次数应该是零,除非你想费时费力自己搭建服务器。操作截图如下:



三、创建新的本地分支
1.首先,克隆远程仓库到本地,进入仓库主目录,执行 git br 查看分支信息:


2.执行 git branch [分支名] 可以创建新的分支:




3.此命令创建新分支后并未切换到新分支,还是在 master 分支上,执行 git checkout [分支名] 切换分支,checkout 也是常用命令,先给它设置别名,然后切换分支:


4.创建新分支还要手动切换太麻烦,介绍另一个常用的命令 git checkout -b [分支名] 创建分支并切换到新分支:





如上图所示的分支信息,前两行是新建的本地分支信息,它们的版本号与主分支 master 一致,这是因为在哪个分支上创建新分支,新分支的提交记录就与哪个分支一致。新建分支并无跟踪任何远程分支,所以没有 master 分支中的中括号和括号内的蓝色远程分支名。
5.假设我们要在当前分支 dev1 上开发一个新的功能,需要增加一个文件 new_func1,然后生成一个新的提交:




四、将新分支中的提交推送至远程仓库
1.执行 git push [主机名] [本地分支名]:[远程分支名] 即可将本地分支推送到远程仓库的分支中,通常冒号前后的分支名是相同的,如果是相同的,可以省略 :[远程分支名],如果远程分支不存在,会自动创建:


2.上图命令可以简写为 git push origin dev1 。注意哦,这是我们创建 SSH 关联后第一次执行 push 命令,可以看到传输速度有明显的提高,更重要的是,不再需要重复输入用户名和密码了,另外打印信息的第一行是警告信息,因为是这个分支的第一次推送嘛,下次执行推送就不会再出现了。现在执行 git br 查看一下分支情况:


可以看到,远程分支 origin/dev1 的信息已经在本地存在,且与本地同名分支一致。再看下 GitHub 页面的情况:


五、本地分支跟踪远程分支
执行这个命令 git branch -u [主机名/远程分支名] [本地分支名] 将本地分支与远程分支关联,或者说使本地分支跟踪远程分支。如果是设置当前所在分支跟踪远程分支,最后一个参数本地分支名可以省略不写:




这个命令的 -u 选项是 --set-upstream 的缩写。可不可以让本地分支跟踪远程非同名分支呢?可以的,尽管几乎遇不到这种自找麻烦的需求。可不可以撤销本地分支对远程分支的跟踪呢?也是可以的,执行 git branch --unset-upstream [分支名] 即可撤销该分支对远程分支的跟踪,同样地,如果撤销当前所在的分支的跟踪,分支名可以省略不写:




问题又来了,前面的操作是先将本地分支推送到远程仓库,使远程仓库创建新分支,然后再执行命令使本地分支跟踪远程分支,有没有办法在推送时就自动跟踪远程分支呢?有的,在推送的时候,加个 --set-upstream 或其简写 -u 选项即可,现在切换到 dev 分支试一下这个命令:




六、删除远程分支
1.首先,删除远程分支,使用 git push [主机名] :[远程分支名] ,如果一次性删除多个,可以这样:git push [主机名] :[远程分支名] :[远程分支名] :[远程分支名] 。此命令的原理是将空分支推送到远程分支,结果自然就是远程分支被删除。另一个删除远程分支的命令:git push [主机名] --delete [远程分支名]。删除远程分支的命令可以在任意本地分支中执行。两个命令分别试一下:




2.可以看到本地仓库已经没有远程分支 dev 和 dev1 的分支信息。查看 GitHub 仓库页面:


也只剩 master 一个分支。操作成功。
感兴趣的同学,可以直接前往《Git 与 GitHub 入门实践》,直接使用实验楼提供的在线环境动手练习。
最后再送上10条给编程新手的 Github 秘籍:
实验楼在线教育:10条送给编程新手的 GitHub 秘籍
glayivan 发表于 2023-10-3 19:43:43|来自:北京 | 显示全部楼层
非常给力的 GitHub 从 0 开始系列,对新手友好~
从0开始学习 GitHub 系列之「初识 GitHub」
我是从小白一路过来的,很能理解你们内心的感受与困惑,因为这些阶段都是我自己亲身经历过的,所以我写的文章都会从你们的角度去出发,并且我对文章高要求,除了排版、配图很用心外,文章的内容每次写完我都会亲自看三四遍,确保不会出现误导以及你们理解不了的情况,你们看的很轻松易懂的文章其实因为我背后做了很多的功课。
从0开始学习 GitHub 系列之「加入 GitHub」
注册 GitHub
认识 GitHub
GitHub 主页
设置你的 GitHub
GitHub 基本概念
创建自己的项目
从0开始学习 GitHub 系列之「Git 速成」
GitHub 是基于 Git 的,所以也就意味着 Git 是基础,如果你不会 Git ,那么接下来你完全继续不下去,所以今天的教程就来说说 Git ,当然关于 Git 的知识单凭一篇文章肯定说不完的,我这篇文章先介绍一些最基本的、最常用的一些 Git 知识,争取让你们 Git 速成。
从0开始学习 GitHub 系列之「向GitHub 提交代码」
上一篇文章只介绍了对本地 Git 仓库的基本操作,今天我就来介绍下如何跟远程仓库一起协作,教你们向 GitHub 上提交你们的第一行代码!

  • SSH
  • 生成SSH key
  • GitHub 上添加 SSH key
  • Push & Pull
  • 提交代码
从0开始学习 GitHub 系列之「Git 进阶」
关于 Git 相信大家看了之前一系列的文章已经初步会使用了, 但是关于Git还有很多知识与技巧是你不知道的,今天就来给大家介绍下一些 Git 进阶的知识。

  • 用户名和邮箱
  • alias
  • 其他配置
  • diff
  • checkout
  • stash
  • merge & rebase
  • 解决冲突
内容节选自:SegmentFault 技术周刊 Vol.28 - GitHub —— 你不得不上的交友网站

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则