一个git使用教程

https://:.com/jlord/git-it-electron#what-to-install

一个在线Github的功能教学:https://lab.github.com/


看刚才改变的文件的区别。

git diff:

Add GitHub username to Git

添加你的用户名到你的Git配置: (一次性的,所有仓库都是这个名字)

git config --global user.username <USerNamE>

再核查一下:

git config --global user.username


git remote add origin https://github.com/chentianwei411/hello-world.git

git push -u origin master

把master分支推到远程仓库origin。

-u的意思是设置upstream ❓不明白。

提示:

设置URL给一个远程仓库, 改变一个远程仓库url

git remote set-url <remoteName> <URL>

拉:

git pull <remoteName> <branchName>

推:

git push <remoteName> <branch>

增加一个远程仓库:

git remote add <remoteName> <URL>

本地和远程断开:

git remote remove <name>  #默认远程仓库名字是origin


Fork and Clones

fork到你的GitHub账号,然后clone到你的电脑,你的电脑可以链接2个远程仓库,自己的和fork别人的仓库。

可以从别人的仓库pull变化的代码。也可以push request,请求合并。

  1. fork
  2. git clone <自己的url>
  3. 链接到原始的仓库。别人的那个仓库。git remote add upstream <别人的仓库URL>
originhttps://github.com/chentianwei411/patchwork.git (fetch)
originhttps://github.com/chentianwei411/patchwork.git (push)
upstreamhttps://github.com/jlord/patchwork.git (fetch)
upstreamhttps://github.com/jlord/patchwork.git (push)

Branch

接着上面链接了远程仓库后,master变成了gh-pages❕

输入:

patchwork ⮀ ⭠ gh-pages  git status

On branch gh-pages
Your branch is up-to-date with 'origin/gh-pages'.

Github将自动服务和静态主页网页在branch中,叫做gh-pages。这个免费的服务是GitHub Pages。既然你forked创建了一个网页,它的主要branch是gh-pages,代替了master。

改一个分支的name:

git branch -m <newBranchName>

上传一个变动:

git push origin add-chentianwei411


创建一个pull request

你做了一些改动,push到fork的app创建人,并在它的Github上创建一个pull request。对方会选择是否pull. 当被pull后,在本地可以合并,并删除旧分支,还可以删除远程的旧分支。

git merge <branchName>

git branch -d <dd>

git push <remoteName> --delete <branchName>

Pull form Upstream

最后,因为original 变化了。pull从original upstream

git pull upstream gh-pages

在http://jlord.us/patchwork/ 可以看到我的名字chentianwei411


https://help.github.com/articles/github-glossary/#repository

GitHub术语表Glossary

Blame:

描述一个文件中国年每一行最后的一次变更,包括修改,作者,时间。用于跟踪记录一个功能何时增加的,或者哪次提交导致了一个bug。

Diff

在两个commit中的不同,变化。一般用于描述最后移除提交后,增加或移除的代码。

Fetch

从最新的远程仓库下载变化但没有merging them in。

Issue

是和这个仓库相关的被建议的改进,任务,或者问题。Issue 可以被任何人创建(仅公共仓库), 可以被仓库的合作者管理。每个Issue都包括它自己的讨论论坛,可以被标记和分配给一个user。

Pull request

are proposed changes to a repository submitted by a user。

下拉请求是提议的变化。它由一个使用者提交到一个仓库。被仓库的合作者接受或者拒绝。和Issue一样,Pull request有自己的论坛。

SSH key

在一个在线服务上识别你自己的方法,使用编码的信息。

Upstream

当谈论一个分支或一个fork, 在原始仓库中的主分支常常被认为是upstream上游。因为这里(主分支)是其他变化进入的主要位置。 The branch/fork 你正工作的地方则称为downstream下游。

user

一个个人的GitHub账号。


Git Page

特别的格式要求:

  • _config.yml 是自动生成的关于theme的YAML格式文件
  • 你需要一个文件使用YY-MM-DD-title.md的格式
  • JeKyll使用标记语法。
  • 具体要求都在这里:https://jekyllrb.com/docs/posts/


https://lab.github.com/courses/managing-merge-conflicts

学习merge conflicts的解决方法

可以在github.com user interface上解决,也可以在command line或其他本地的tools上解决。

How merge conflicts happen

版本控制让你制造不断增加的代码或文件,保存到历史记录中。 Git操作就像一个线性账单。

在GitHub Flow中,首先,基于base branch创建新的分支。然后,你会增加多个提交commit,这些提交只存在于你新建的当前分支中。最后, 你打开一个pull request提议,让你增加的commit合并到base branch中去,合并这个分支并删除这个分支。

版本冲突就发生在当base branch 被某人改变了,而你使用的是没变之前的base branch。这通常发生在你合并分支之前,已经有他人把他们的分支merge到了base branch.


解决一个简单的冲突:

2个user在一个repository中工作,他们都创建了分支,都在改同一个文件后,打开了pull requests。一个人的请求被merge到master分支,这不会发生问题,但另一个人的pull request则会被拒绝,显示conflict.

  1. 点击“Resolve conflicts”按钮,位于页面底部的“This branch has conflicts that must be resolved”框。
  2. 进入新页面,看到红色高亮的部分: <<<<<< update-config和>>>>>>>>master
  3. 删除主分支上的不同代码,位于========下面,>>>>>>master上面的代码。
  4. 然后,移除merge conflict markers。
    <<<<<<< update-config
    =======
    >>>>>>> master
  5. 点击右上角的“Mark as resolved”,会出现 ✅Resolved all conflicts
  6. 并原位置出现Commit merge 按钮,点击它。回到Conversation讨论版。

⚠️,有时,解决一个合并冲突的最好办法是增加两个分支之外的内容代码,甚至联合所有来自不同分支的变化代码。因此Git需要人为的检查代码并作出适当的调整。

提交合并后发生了什么?

在一个新的merge commit记录中储存这个冲突的解决办法。这样你和你的团队可以继续工作。

另类的解决冲突的办法:

为了解决一个冲突, GitHub可以使用一个叫做reverse merge的办法。即:把master合并到update-config分支上。而不是把冲突分支合并到master上。

这种方法可以让你在分支上测试这个代码,保证✅后,再合并到master。尤其是在master已经处于产品阶段,必须让它无bug的情况。


Resolve conflicts in the Advanced Conflicts pull request

  • 总共2个文件,三个冲突。
  • 其中,一个文件中有2处冲突。
  • 合并冲突标记残余,例如<<<<<。如果你的colleagues在本地解决了合并冲突,但忘记移除标记。

方法和上一节一样。


More complicated merge conflicts:

需要在command line上解决。你可能遇到:

  • 修改一个已经删除的文件,在另一个分支上。
  • 两个分支上,明显的文件改变,以至于Git对待它们为不同的文件。
  • GUI resolution tools 图形界面工具。

git-it 教程,一些git知识点。/ 如何解决merge conflict/ 如何使用Github Pages./Git术语表的更多相关文章

  1. 痞子衡嵌入式:第一本Git命令教程(0)- 索引

    大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家讲的是Git命令汇编,共12篇文章,循序渐进地介绍Git操作的完整过程. 在开始Git课程之前,需要先跟大家普及2个重要概念(四度空间.四种状 ...

  2. git 入门教程之紧急修复

    和往常一样,每个人团队开发者都在自己的本地分支上进行日常工作,相互独立又相互联系,一直以来相安无事,可是某天下午,上级领导突然急冲冲的打电话告诉你线上出bug了,需要你紧急修复,下班之前必须解决! 我 ...

  3. git 入门教程之撤销更改

    撤销更改 相信你已经了解了 git 的基本概念,也清楚了工作区,暂存区和版本库的关系,现在让我们用所学的知识继解决实际问题吧! 背景 正常看得见的目录是我们最为熟悉的工作区,在工作中不可能总是100% ...

  4. [转载] Ubuntu 12.04下安装git,SSH及出现的Permission denied解决办法

    如何安装ssh http://os.51cto.com/art/201109/291634.htm 仅需要阅读至成功开启ssh服务即可 http://www.linuxidc.com/Linux/20 ...

  5. 解决冲突-git入门教程

    人生不如意之事十之八九,合并分支往往也不是一帆风顺的. 准备新的feature1分支,继续我们的新分支开发: $ git checkout -b feature1 Switched to a new ...

  6. git使用教程指南

    前言  Git是一个开源的分布式版本控制系统.其核心就在于版本控制.  在实际编码过程中,我们往往会忘记上次对文件的修改内容.若是刚刚修改的还好说,撤销操作即可.但若这是你昨天做的修改并关闭了IDE呢 ...

  7. Git使用教程【转】

    Git使用教程 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是 ...

  8. Git版本控制教程

    Git 版本控制入门 不了解Git请查看权威Git书籍 ProGit(中文版). 一份很好的 Git 入门教程,点击这里查看. Git客户端下载地址: 官方Git - TortoiseGit - So ...

  9. git详细教程

    Table of Contents 1 Git详细教程 1.1 Git简介 1.1.1 Git是何方神圣? 1.1.2 重要的术语 1.1.3 索引 1.2 Git安装 1.3 Git配置 1.3.1 ...

随机推荐

  1. poj1952 BUY LOW, BUY LOWER【线性DP】【输出方案数】

    BUY LOW, BUY LOWER Time Limit: 1000MS   Memory Limit: 30000K Total Submissions:11148   Accepted: 392 ...

  2. poj1584 A round peg in a ground hole【计算几何】

    含[判断凸包],[判断点在多边形内],[判断圆在多边形内]模板  凸包:即凸多边形 用不严谨的话来讲,给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边形,它能包含点集中所有的点. The ...

  3. PHP搭建(windows64+apache2.4.7+mysql-5.6+php5.5+phpMyAdmin)和Discuz安装

    以下文章参考的3个来源,在加上本人搭建过程中遇到的问题的修复完善笔记: <PHP环境的搭建和Discuz!安装> http://www.myxzy.com/post-386.html ht ...

  4. python sort、sorted高级排序技巧(转)

    add by zhj: 没找到原文.可以按多个维度进行排序,而且可以指定他们的排序方向,如果维度都是数字,排序比较容易,用+/-号就可以 指定排序方向.否则,就调用多次sorted进行排序了,而且要按 ...

  5. sql server 驱动程序在 \Device\RaidPort0 上检测到控制器错误。

    sql server 驱动程序在 \Device\RaidPort0 上检测到控制器错误. 错误情况,如下图: 原因分析:硬盘故障 解决办法:进行迁移

  6. git-【四】撤销修改和删除文件操作

    一:撤销修改: 比如我现在在readme.txt文件里面增加一行 内容为555555555555,我们先通过命令查看如下: 在未提交之前,发现添加5555555555555内容有误,所以得马上恢复以前 ...

  7. Python之traceback错误堆栈信息处理

    一.Python中的异常栈跟踪 之前在做Java的时候,异常对象默认就包含stacktrace相关的信息,通过异常对象的相关方法printStackTrace()和getStackTrace()等方法 ...

  8. Parallel Decision Tree

    Decision Tree such as C4.5 is easy to parallel. Following is an example. This is a non-parallel vers ...

  9. 多口USB HUB信号延长器 USBX-M200(针对于A客户使用时很棒吧)

    大家都知道A客户是不允许在设备里面出现无线的东东,但是USB的传输距离有很短.咋办呢?? 见下图 http://rextron-cn.com/product_show.asp?id=74

  10. smart基础

    主要是libs里面的smarty类,和init.inc.php配置文件 剩下的是php文件夹.模板文件夹,临时文件夹.缓存文件夹.配置文件夹.插件文件夹 调用main文件夹中的php文件,通过libs ...