1 前期准备

1.1 环境说明

系统:Ubuntu 18.04

1.2 前期准备

  1. 打开终端,确保git命令可使用;如果不能使用请自行搜索如何安装git
  2. 建议新建一个专门存储各个仓库的文件夹(假定文件夹命名为Git),然后再在Git下新建各个本地仓库的文件夹,例如文件夹结构:
    |——Git
    |—git_1
    |—git_2
    | …

1.3 git术语

  • git: 一个开源的分布式版本控制系统
  • GitHub: 一个托管和协作管理 Git 仓库的平台
  • add: 添加文件到仓库(此时并未上传)
  • commit 提交: 上传文件到仓库
  • branch 分支: 一个轻型可移动的 commit 指针
  • clone: 一个仓库的本地版本,包含所有提交和分支
  • remote 远端: 一个 GitHub 上的公共仓库,所有小组成员通过它来交换修改
  • fork: 一个属于另一用户的 GitHub 上的仓库的副本
  • pull request 拉取请求: 一处用于比较和讨论分支上引入的差异,且具有评审、评论、集成测试等功能的地方
  • HEAD: 代表你当前的工作目录。使用git checkout 可移动 HEAD 指针到不同的分支、标记(tags)或提交

2 教程&手册

2.1 git本地用户名设置

  • 作用是区分不同用户的commit;本地用户名只本地使用,和github账号无关

2.1.1 为本地所有仓库设置全局用户名(global username)

  1. 打开终端
  2. 输入:git config --global user.name "用户名"
    命令中的“用户名”三个字替换为自定义用户名;“–global”表示在所有仓库中都使用该用户名
  3. 确认全局用户名:git config --global user.name
  4. 顺带把全局用户名关联的email地址关联一下:git config --global user.email "[邮箱]"

备注:全局用户名只能设置一个,如果设置多个,那么只会保存最后设置,具体验证请查看git 配置文件 .gitconfig

2.1.2 为仓库设置仓库用户名(local username)

  1. 打开终端
  2. 进入某仓库文件夹,例如进入上面提到的“git_1”文件夹
  3. 输入:git config user.name "用户名"
    如果报错“fatal: not in a git directory”,那说明文件夹git_1并没有进行仓库初始化,直接输入命令:git init初始化当前仓库,再执行仓库用户名设置命令
  4. 确认仓库用户名:git config user.name

该仓库用户名配置文件见.git文件夹下的config文件
如果该仓库没有配置仓库用户名,那么输入第四步命令,会显示全局用户名
ps:因为博主只设置了全局用户名,所以局部用户名是否可以关联邮箱就不验证了,感兴趣请读者自行验证

2.2 建仓

  1. 在终端cd进入仓库文件夹
  2. 初始化仓库:git init

2.3 新建README.md

echo "# Git_repo" >> README.md

使用echo命令,如果没有README.md文件会自动创建一个;命令中引号部分是添加到README.md中的内容

README.md遵从markdown的书写格式,因此想要增加标题/加粗等其他markdown格式,直接添加在引号中即可;上面命令“# Git_repo”在README.md文件中添加了一个标题,名为Git_repo;#号代表markdown标题格式

2.4 添加文件:add

git add README.md

添加README.md文件到仓库

当然也可以添加别的文件到仓库,但需要将要添加的文件/文件夹复制到仓库内

2.5 提交文件:commit

git commit -m "备注"

其中-m表示该次commit附带一个message,即备注,备注内容为命令中引号内的内容
该命令提交所有已添加(add)的文件到本地仓库

2.6 分支操作

  • 查看当前分支状态:git status
    显示分支名称,已添加文件 ;类似命令还有git diff
  • 新建分支:git branch 分支名
  • 删除分支:git branch -d 分支名
  • 切换分支:git checkout 分支名
    还可以是git switch 分支名 或者 git branch 分支名
  • 显示所有分支:git branch -a / git branch
  • 重命名当前分支:git branch -m 新分支名
  • 合并分支到当前分支:git merge 分支名
  • 删除当前分支下added文件:git rm --cached 文件名

2.7 链接到Github上的仓库

git remote add 仓库地址的名字 仓库地址

仓库地址就是Github上给的地址,然后给仓库地址一个名字:仓库地址的名字,此时还没有将本地仓库的内容推到Github上

2.8 推送 本地仓库 到 远程仓库(Github)上

git push  仓库地址的名字 仓库分支名字

2.9 拉取网络仓库

cd target_folder
git pulll HTTPS_LINK

2.10 为代码打上版本标签

git tag xx.xx
git tag v1.0

其中“xx.xx”表示标签设定的版本,第二行以v1.0为例;建议在commit后执行

2.11 如果在github官网对仓库进行了修改(重命名),更新和重新连接到本地仓库

git branch -m 本地仓库当前分支名字 新分支名字
git fetch 远程仓库地址在本地的名字                                                                                          // 即教程2.7中“仓库地址的名字”
git branch -u 远程仓库地址在本地的名字/远程仓库地址默认分支名 新分支名字
git remote set-head 远程仓库地址在本地的名字 -a

2.12 查看历史提交和备注

git log

2.13 列出现有远程仓库

git remote -v

「Github」Linux/Ubuntu下终端Github教程与手册相关推荐

  1. Linux/Ubuntu下ffmpeg安装教程

    一.简述ffmpeg FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序,它提供了录制.转换以及流化音视频的完整解决方案,包含了libavcodec --这是一个用于 ...

  2. 小米和360随身wifi在linux(Ubuntu)下作无线网卡教程

    平台: Ubuntu12.04  Ubuntu 13.04 说明: 随身wifi本身无线网卡,但是厂商修改了PID,使其系统无法自动识别驱动.而改用他自带的驱动软件作为Ap来使用. 在设备驱动管理,小 ...

  3. 在ubuntu下使用Github?

    如何在ubuntu下使用Github? 2016年05月05日 22:04:12 阅读数:12786 安装Git 一个全新的ubunt系统,需要安装Git(系统是不具有该工具的),方法如下: 在ter ...

  4. 在Linux(Ubuntu)下搭建ASP.NET Core环境并运行 继续跨平台

    最新教程:http://www.cnblogs.com/linezero/p/aspnetcoreubuntu.html 无需安装mono,在Linux(Ubuntu)下搭建ASP.NET Core环 ...

  5. 「推荐」Linux远程连接工具之ssh客户端工具

    Ubuntu下Finalshell的安装 Ubuntu20.04安装 FinalShell远程工具 「推荐」Linux远程连接工具之ssh客户端工具

  6. qt程序在Linux下字体乱了,解决linux/Ubuntu下Qt creater 界面程序在编译运行后无法显示中文或中文乱码问题!...

    本文解决的主要是界面程序编译运行后无法显示中文的问题,如果在creater 中无法输入中文,下载个IBus或者搜狗之类的中文输入法即可解决! 首先说乱码问题,这个很好解决: 如果是在linux下打开W ...

  7. ubuntu下终端提示符设置

    PS1变量 修改/ect下bash.bashrc文件PS1变量 \d :代表日期,格式为weekday month date,例如:"Mon Aug 1" \H :完整的主机名称. ...

  8. linux/ubuntu下的代码对比工具Meld Diff

    linux/ubuntu下的代码对比工具Meld Diff 做开发的都知道,一个项目多个版本,有的时候多了自己都昏,还有就是比对别人的代码的时候,眼睛看怕是要爆炸. 所以我们一般使用代码对比工具,也就 ...

  9. oracle xe 乱码_关于Linux操作系统下终端乱码的完美解决方法

    初入linux的程序员们,经常会受到乱码的问候.可谓"始乱终弃".因为乱码,并且最终放弃了linux的不在少数.好吧,言归正传,先看看各类乱码是怎么形成的. 中文字符乱码 这种情况 ...

最新文章

  1. JS实例学习笔记——w3cschool+菜鸟教程
  2. Struts2与Webwork2的区别
  3. 在线实时大数据平台Storm集群组件学习
  4. 用户计算机可以通过电话拨号,用户计算机可以通过大型局域网、小型局域网、无线连接、电话拨号和()等方式接入Internet。...
  5. Spark键值对RDD的转化操作
  6. html5 机构化元素
  7. esp8266教程:定时器之原理基础
  8. java面试题(仅供参考)
  9. 职称计算机execl试题,职称计算机考试EXCEL操作题
  10. 利用谷歌浏览器模拟网速慢的情况
  11. 线上拼团活动方案怎么制作设计?
  12. python魔方程序算法_python魔方程序算法_python算法(一)
  13. 《山海经——五藏山经》
  14. 超静音服务器性能强,静音服务器:最适合办公环境的静音服务器
  15. 用vue-pdf包实现pdf文件预览,支持分页
  16. 内江求是中学计算机应用有哪些,内江市求是职业技术学校(内江市求是中学)官网/招生网2020网址...
  17. 乔春洋:挑战型品牌的进攻策略
  18. 分布式系统:概念与设计读书笔记
  19. (十三)深入理解蓝牙BLE之“Linux系统搭建zephyr和dongle的环境”
  20. 关于三只母鸡和三只小鸡过河问题

热门文章

  1. JavaScript实现cartesianProduct笛卡尔乘积算法(附完整源码)
  2. OpenCASCADE绘制测试线束:几何命令之曲线和曲面修改
  3. wxWidgets:显示和测试 wxDC 功能
  4. boost::system模块实现动态链接库的测试程序
  5. boost::spirit模块演示 AST 生成的计算器示例,AST一旦创建就会被遍历
  6. boost::serialization模块实现快速二进制归档的测试程序
  7. boost::combine相关的测试程序
  8. boost::random模块实现如何使用随机数库的简短演示程序
  9. boost::mp11::mp_replace_second相关用法的测试程序
  10. boost::mp11::mp_rename相关用法的测试程序