跳到主要内容

7 篇博文 含有标签「Git」

查看所有标签

一、 在Github上建立仓库

二、在项目根目录创建.gitignore文件

# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
/.idea
# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# production
/build

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*

三、初始化git

git init

四、将现有文件添加到暂存区

git add .

五、提交到版本区

git commit -m "本次提交的信息"

六、将本地仓库和远程仓库进行关联

git remote add origin https://github.com/xxx.git 

七、将本地分支推送到远程

git push origin master

创建新分支(创建之前需要将原本的分支进行保存并提交)

# 创建dev分支
git checkout -b dev
# 将新创建的dev分支推送到远程
git push origin dev

查看所有分支

git branch -a

切换分支

git checkout 分支名

通过克隆的方式获取远程分支

# 通过git clone获取的是master分支
# 通过下面的这种方式可以获取远程的其他分支
git checkout -b dev origin/dev

git pull 和 git push 的区别


Git阅读需 1 分钟

1:首先我们的PC已经绑定过一个账号了,也就意味这我们右id_rsa了。

2:生成新的公钥并命名为id_rsa_2

ssh-keygen -t rsa -f ~/.ssh/id_rsa_2 -C "yourmail@xxx.com"

3:修改config配置

4:将指定公钥输入github

id_rsa_2.pub 指的是公钥

5:设置全局用户名和密码

# 取消全局 用户名/邮箱 配置
git config –global –unset user.name
git config –global –unset user.email
# 单独设置每个repo 用户名/邮箱
git config user.email “xxxx@xx.com”
git config user.name “xxxx”

6:链接远程仓库

git remote add origin ***

Git阅读需 1 分钟

指令的含义

创建分支git branch name切换到name分支
切换分支git checkout nameHead指向name
提交分支git commit每一次提交都会包含当前指向的分支
合并分支1git merge 名字将merge后面的分支合并到当前所在的分支,也就是*指向的分支
合并分支2git rebase 名字合并到名字的后面
分离HEADgit checkout 名字这里的 名字 指的是HEAD指向的分支指向的位置
  • git commit :只提交暂存区的文件,也就是说只提交status下是绿色的文件
  • git reset :将绿色的文件,重新变为红色,想当于撤销的操作。
  • git status :查看暂存区的工作状态,存在绿色的话,说明还没有提交到本地库
  • 提交的格式选择(尽量选择下面这种格式,引号里相当于是注释)
  • git log:查看历史的提交记录

Git阅读需 1 分钟

本文由 简悦 SimpRead 转码, 原文地址 https://www.zhihu.com/question/21682976 beepony

我尝试用类比的方法来解释一下 pull reqeust。想想我们中学考试,老师改卷的场景吧。你做的试卷就像仓库,你的试卷肯定会有很多错误,就相当于程序里的 bug。老师把你的试卷拿过来,相当于先 fork。在你的卷子上做一些修改批注,相当于 git commit。最后把改好的试卷给你,相当于发 pull request,你拿到试卷重新改正错误,相当于 merge。

当你想更正别人仓库里的错误时,要走一个流程:

  1. 先 fork 别人的仓库,相当于拷贝一份,相信我,不会有人直接让你改修原仓库的
  2. clone 到本地分支,做一些 bug fix
  3. 发起 pull request 给原仓库,让他看到你修改的 bug
  4. 原仓库 review 这个 bug,如果是正确的话,就会 merge 到他自己的项目中

至此,整个 pull request 的过程就结束了。

理解了 pull request 的含义和流程,具体操作也就简单了。以 Github 排名最高的 https://github.com/twbs/bootstrap 为例说明。

  1. 先点击 fork 仓库,项目现在就在你的账号下了


2. 在你自己的机器上 git clone 这个仓库,切换分支(也可以在 master 下),做一些修改。

~  git clone https://github.com/beepony/bootstrap.git
~ cd bootstrap
~ git checkout -b test-pr
~ git add . && git commit -m "test-pr"
~ git push origin test-pr
  1. 完成修改之后,回到 test-pr 分支,点击旁边绿色的 Compare & pull request 按钮

4. 添加一些注释信息,确认提交
5. 仓库作者看到,你提的确实是对的,就会 merge,合并到他的项目中

以上就是 pull reqesut 的整个流程,希望对你有帮助~

参考文档:
Fork A Repo - User Documentation
Using pull requests
Creating a pull request 王赟 Maigo​

我从单纯的语言学角度解释一下为什么 “pull request” 这个词组这么令人费解。

先说正确的理解:pull request 是一个 request,它的目的是让别人 pull 你的东西。

然而 pull 和 request 两个名词直接相连构成偏正短语,二者之间具体是什么关系是不确定的。

思考:water hose, rubber hose, fire hose, garden hose 这四个短语中,两个词之间分别是什么关系?

我第一次看到 pull request 这个词组的时候,误以为这个 request 的目的是请求别人允许自己 pull 别人的东西。

另外,pull 和 request 还都有动词义,放到一起的时候,还可能被误解成动宾短语(pull 作动词,request 作名词)。

英语中很多单词有多种词性,另外对一串名词直接相连构成词组的句法又比较宽容,这两个性质容易被滥用,造成沟通上的不便。
恰好汉语也具有这两个特点——你把上文中的 “pull request” 都换成“拉取请求”,看看是不是依然成立?

当然,熟悉了 GitHub 的工作流程后,你可能就不再感觉 pull request 这个词组有歧义或是费解了。

这是专业知识消除歧义的典型例子。

匿名用户有一个仓库,叫 Repo A。你如果要往里贡献代码,首先要 Fork 这个 Repo,于是在你的 Github 账号下有了一个 Repo A2,。然后你在这个 A2 下工作,Commit,push 等。然后你希望原始仓库 Repo A 合并你的工作,你可以在 Github 上发起一个 Pull Request,意思是请求 Repo A 的所有者从你的 A2 合并分支。如果被审核通过并正式合并,这样你就为项目 A 做贡献了程墨 Morgan

使用过 git 的应该都知道 git pull,这个命名相当于连续执行两个命令 git fetch 然后 git merge。所以,pull request 的意思就是一个 “请求”(request),请对方做一个 git fetch 拿到 request 中的代码 commits,然后 git merge 一下到某个分支上。

pull request 简称 PR,是 github 的概念,不是 git 的概念,所以也不是立刻出结果的,需要有人去同意完成这个 PR,当然同意完成 PR 的可以是自己,也可以拒绝 PR。

现实项目中,即使自己对某个 repo 的特定分枝有写入权限,也可以提 PR 来修改,因为这是 code review 的一种方式,让团队的其他人看一看改的咋样。冯斐我改了你们的代码,你们拉回去看看吧 !!!


Git阅读需 4 分钟

新建一个文件夹,并在这个文件夹中将远程仓库克隆下来。

进入我们要修改的文件夹(这点很重要)

查看我们当前所在的分支

查看远程仓库的状态

修改远程仓库中文件的内容

查看远程仓库的状态

加入暂存区

远程提交(引号里是自己的)

推送上去

由于使用的是Gitee因此要输入用户名和密码,今天用了好久才发现,原来我的Gitee的用户名是我的手机号

如果出现问题,可以参考下面的解决办法(推荐方案2)

方案1: 方案2: 总结下:当出现上述的问题的时候,是因为远程仓库发生了变化,本地需要先更新才可以继续上传。


Git阅读需 1 分钟