更新从别人仓库克隆的项目

本文详细介绍了如何在Git中撤销add和commit操作,包括撤销特定文件的add、撤回commit但保留代码更改、完全撤销commit并恢复至上一版本状态的方法。同时,文章还提供了从他人仓库克隆项目的更新流程,包括添加远程仓库、拉取更新、合并至本地仓库的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

个人分类: Github相关

1.撤销 git add

撤销操作

git status #先看一下add 中被add了哪些文件
git reset HEAD #如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
git reset HEAD XXX/abc.python #就是对某个文件进行撤销了

1
2
3

演示:

$ git status
On branch master
Your branch is up-to-date with ‘origin/master’.
Changes to be committed:
(use “git reset HEAD …” to unstage)

    new file:   teset.py

$ git reset HEAD teset.py
$ git status
On branch master
Your branch is up-to-date with ‘origin/master’.
Untracked files:
(use “git add …” to include in what will be committed)
teset.py # 提示你可以用 git add添加,说明撤销成功

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

2.撤销 git commit

git reset --soft HEAD^ # 这样就成功的撤销了你的commit(未撤销add)

1

注意:
a. 仅仅是撤回commit操作,您写的代码仍然保留(工作空间的代码还在)。
b. HEAD^的意思是上一个版本,也可以写成HEAD1,如果你进行了2次commit,想都撤回,可以使用HEAD2
c. --mixed:不删除工作空间改动代码,撤销commit,并且撤销git add 操作
d. --soft: 不删除工作空间改动代码,撤销commit,不撤销git add .
e. --hard: 删除工作空间改动代码,撤销commit,撤销git add .完成这个操作后,就恢复到了上一次的commit状态。

演示:

------------提交 commit----------------

$ git add teset.py
$ git commit -m ‘test’

[master 9ff1ee5] test
1 file changed, 8 insertions(+)
create mode 100644 teset.py

$ git status
On branch master
Your branch is ahead of ‘origin/master’ by 1 comm

------------撤销 commit----------------

$ git reset --soft HEAD^
$ git status

On branch master
Your branch is up-to-date with ‘origin/master’.
Changes to be committed:
(use “git reset HEAD …” to unstage)

    new file:   teset.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

顺便说一下,如果commit注释写错了,只是想改一下注释,只需要:git commit --amend此时会进入默认vim编辑器,修改注释完毕后保存就好了。

3.更新从别人仓库克隆的项目

背景:在github上克隆了别人的代码,当别人更新后,我们需要再将其从github上更新到自己的本地仓库。

第一步:首先使用git remote add upstream 原作者仓库把别人的仓库添加到你的上游远程,通常命名为upstream。(这部操作只需一次即可,以后再次更新时不用);
第二步:使用git remote -v就可以看到一个origin是你的,另外一个upstream是原作者的;
第三步:使用git fetch upstream去拉原作者的仓库更新;
第四步:使用git checkout master切换到自己的master
第五步:使用git merge upstream/master合并到你自己本地的master,这样自己本地的代码就得到更新了
.更新从别人仓库克隆的项目

<think>好的,我现在需要帮助用户了解如何在GitHub上使用fork功能克隆别人的仓库。用户的问题看起来是关于GitHub的基本操作,所以应该详细但不过于复杂。 首先,我要回忆一下自己了解的GitHub fork流程。Fork通常用于贡献代码或者基于别人的项目进行开发。步骤大致是在GitHub页面上点击Fork按钮,生成自己的副本,然后克隆到本地。可能需要配置上游仓库以便同步原项目更新。 接下来,我需要参考用户提供的引用内容。引用1提到Fork是在自己账号下创建副本,引用3详细说明了克隆的步骤,包括使用git clone命令。引用4也提到了添加远程仓库别名和同步更新的方法。这些信息都很相关,应该整合到回答中。 用户可能需要的不仅仅是克隆fork后的仓库,还可能想知道如何同步原仓库更新,所以需要包括配置上游的步骤。引用4中的git remote add upstream和git fetch upstream这些命令很重要,应该包含进去。 另外,用户可能对克隆后的操作不太清楚,比如如何保持自己仓库与原项目同步。这部分需要分步骤说明,比如获取上游更新、合并到本地分支等。同时,引用2提到了克隆旧版本的方法,但用户的问题主要是关于fork克隆,可能暂时不需要这部分,但可以留作后续问题。 还要注意回答的结构,按照步骤来,清晰易懂。每个步骤给出具体的操作和命令示例,比如点击Fork按钮,克隆仓库的命令,添加上游远程仓库的命令等。同时,要提醒用户可能需要安装Git,如引用1中提到的安装Git作为第一步。 最后,生成相关问题时要围绕fork和克隆后的操作,比如同步更新、处理冲突、贡献代码等。这些问题可以帮助用户进一步学习相关操作。 检查是否有遗漏的步骤,比如Fork后的仓库与原仓库的关系,如何推送更改到自己的仓库,如何提交Pull Request。不过用户当前的问题主要是克隆,所以可能不需要深入Pull Request,但可以作为相关问题提及。 总结回答的步骤:Fork仓库到自己的账号,克隆到本地,配置上游仓库,同步更新。每个步骤给出命令和解释,确保用户能一步步操作。同时使用引用中的信息来支持步骤的正确性,比如引用3中的克隆命令和引用4中的上游配置。 可能还需要强调一些常见问题,比如HTTPS和SSH的区别,如何选择克隆链接,但用户的问题比较基础,可能暂时不需要深入,保持回答简洁明了。 最后,确保回答符合用户的要求,使用中文,结构清晰,分步骤说明,并正确引用提供的参考资料。</think>### 如何通过 Fork 克隆 GitHub 上的他人仓库 #### 步骤说明 1. **Fork 仓库到自己的账户** - 打开目标仓库GitHub 页面(例如 `github.com/original-owner/repo`)。 - 点击右上角的 **Fork** 按钮,稍等片刻,GitHub 会在你的账号下生成一个同名副本[^1][^4]。 2. **克隆 Fork 后的仓库到本地** - 进入你自己的 GitHub 仓库页面,找到已 Fork 的项目。 - 点击绿色的 **Code** 按钮,选择 **HTTPS** 或 **SSH** 链接并复制[^3]。 - 在命令行中执行克隆命令: ```bash git clone https://github.com/your-username/forked-repo.git # HTTPS 或 git clone git@github.com:your-username/forked-repo.git # SSH ``` 3. **配置上游仓库(跟踪原项目更新)** - 进入克隆后的本地仓库目录: ```bash cd forked-repo ``` - 添加原仓库为远程上游分支: ```bash git remote add upstream git@github.com:original-owner/repo.git ``` - 验证远程仓库配置: ```bash git remote -v # 应显示 origin(你的仓库)和 upstream(原仓库) ``` 4. **同步原仓库更新** - 拉取原仓库的最新代码: ```bash git fetch upstream ``` - 将更新合并到本地分支(例如 `main`): ```bash git merge upstream/main ``` - 推送更新到你的 GitHub 仓库: ```bash git push origin main ``` #### 示意图 $$ \begin{array}{ccc} \text{原仓库} & \xrightarrow{\text{Fork}} & \text{你的仓库} \\ & \downarrow \text{Clone} & \\ & \text{本地副本} & \\ \end{array} $$ #### 注意事项 - 如果使用 HTTPS 克隆,推送代码时需输入 GitHub 账号密码或配置 PAT(个人访问令牌)[^3]。 - 若需贡献代码到原仓库,需通过 `git push origin` 推送到自己的仓库,再提交 Pull Request[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值