首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

pygit:足够的Git客户端创建一个repo,commit,并将自己推送到GitHub

2017年4月 简介:最近我编写了大约500行Python代码,它们实现了足够的Git客户端来创建存储库,将文件添加到索引,提交并将自身推送到GitHub。...有点受到Mary Rose Cook的类似努力的启发,我想看看我是否能够实现足够的git创建库,执行提交,并推送到真正的服务器(在这种情况下为GitHub)。...例如,她使用了一种更简单的基于文本的索引格式,而不是使用的二进制格式git。此外,虽然她gitlet确实支持推送,但它只推送到本地存在的另一个存储库,而不是远程服务器上。...在本练习中,我想编写一个可以执行所有步骤的版本,包括推送到真正的Git服务器。我也想使用相同的二进制索引格式,git因此我可以git在每一步使用命令检查我的工作。...,其中我们将pygit与真实的Git服务器进行对话(我将pygit推送到GitHub,但它也适用于Bitbucket和其他服务器)。

2.3K20

回滚 Git 提交到 GitHub 的 commit 记录

在我们使用 Git 的时候,有时候会遇到想要回滚到某次提交之前的场景。...在这时,我们只需要按照如下步骤操作,即可实现这个目的: 首先,找到想要回退到某个版本的版本号,查看版本号的命令为git log,例如 如上图所示,找到想要回退的版本号之后,在本地 Git 仓库执行如下命令...: git reset --hard 或者git reset --soft 对于上述两条命令,仅有--hard和--soft参数的不同,两者的区别是: --hard,抛弃当前工作区的修改...--soft,回退到之前的版本,但保留当前工作区的修改,可以重新提交 执行完本地回滚之后,还需要执行如下命令,同步远端的内容: git push origin 在执行上述命令的时候,可能会提示本地的版本落后于远端的版本...,因此我们还需要在上述命令中加上--force参数: git push origin --force 到这里,我们就可以把本地和远端的代码都回退到某一个指定的版本了。

77530
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何把已有的本地git仓库,推送到远程新的仓库(github private)并进行远程开发;

    最近因为疫情,在家干活,连接不上之前的gitlab 服务器;所以不得把现有的代码迁移到github 的私有仓库来进行开发;下面简要记录迁移的过程; 首先,确保你已经配置好本地访问远程私有仓库的所有权限;...:linux 命令行下设置代理 进行设置代理; 主要步骤: 创建github 私有仓库;注意在创建仓库的时候不要初始化 readme文件; 把现有仓库通过命令行上传; git remote add origin...git@github.com:name/repo.git 添加远程索引; git push -u origin master 把本地master 推送到远程; 查看现有仓库的所有的远程代码库地址:git...remote -v  如果当前本地仓库已经设置了 origin 的地址;使用下列命令进行删除:git remote remove origin 并再次使用git remote -v 确定; 设置origin...索引地址:git remote add origin git@github.com:name/repo.git; 将本地 master 分支,推送到远程仓库的 master 分支:git push -

    12.2K10

    Git Bash⭐二、与仓库建立连接、提交与下拉项目

    SSH,是我们电脑的密钥,由Git Bash生成,是唯一的。作用是可将它配置到仓库去,这样仓库在接受到Git Bash上传等修改命令时,会先验证SSH,如果验证成功,就执行修改操作。...git commit -m "你的修改备注" 5️⃣ 推送上传 第一次推送上传: 向一个空的远程仓库中推文件: git push -u 本地仓库名称 远程分支名称 仓库名称:刚才我添加连接的时候,给仓库起名叫...所以你现在不只完成了推送到分支,而是先在github上新建了分支,再往那个分支上推送的。 分支:既然我们github上没有分支,所以我们就起名master(主分支的意思)。...以后合作项目的时候,成员之间建了不同的分支,你就可以往你自己的分支上推。...以后的推送上传: 我们第一次推送master分支时,加上 –u参数才会把本地的master分支和远程的master分支关联起来, 只有第一次推的时候需要加上-u,以后的推送只输入: git push 本地仓库的名称

    18510

    提交代码报错 error: failed to push some refs to

    陌涛想把本地的分支推送到远程仓库时,突然出现了错误提醒error: failed to push some refs to...。瞅了瞅,也没错呀,那为啥推不上去???...然后就发现,这个error发生的情况竟然还挺多样化。刚刚推Gitee(码云)的时候,是master,现在推Github是main,改了下,顺便pull了远程仓库,再push,就推送成功了。...(也可能这个大家只包含了我....) git推送的完整写法如下: git push @remoteName @localBranch:@remoteBranch // eg.remoteName:origin...git add . git commit -m "This is a new commit" git push origin master 本地与远程产生冲突 或是有其他协作者提交了代码,或是你之前在远程上直接做了处理...强覆盖 git push -f origin master 拉取再提交 git pull –-rebase origin maste git push origin master 附上刚刚出现的问题截图

    11.9K10

    经典45个git使用技巧与场合,专治不会合代码。

    )写错了 如果你的提交信息(commit message)写错了且这次提交(commit)还没有推(push), 你可以通过下面的方法来修改提交信息(commit message): $ git commit...我尝试推一个修正后的提交(amended commit)到远程,但是报错: To https://github.com/yourusername/repo.git !...暂存(Staging) ----------- 我需要把暂存的内容添加到上一次的提交(commit) (my-branch*)$ git commit --amend 我想要暂存一个新文件的一部分...$ git fetch -p 我不小心删除了我的分支 如果你定期推送到远程, 多数情况下应该是安全的,但有些时候还是可能删除了还没有推到远程的分支。...是因你快进(Fast forward)了提交,改变了Git历史, 远程分支不会接受变化(changes),除非强推(force push)。

    1.5K20

    45个 GIT 经典操作场景,专治不会合代码

    我尝试推一个修正后的提交(amended commit)到远程,但是报错: To https://github.com/yourusername/repo.git !...暂存(Staging) 我需要把暂存的内容添加到上一次的提交(commit) (my-branch*)$ git commit --amend 我想要暂存一个新文件的一部分,而不是这个文件的全部 一般来说..., 如果你想暂存一个文件的一部分, 你可这样做: $ git add --patch filename.x -p 简写。...$ git fetch -p 我不小心删除了我的分支 如果你定期推送到远程, 多数情况下应该是安全的,但有些时候还是可能删除了还没有推到远程的分支。...是因你快进(Fast forward)了提交,改变了Git历史, 远程分支不会接受变化(changes),除非强推(force push)。

    1.8K40

    45 个 Git 操作场景,专治不会合代码

    我尝试推一个修正后的提交(amended commit)到远程,但是报错: To https://github.com/yourusername/repo.git !...暂存(Staging) 我需要把暂存的内容添加到上一次的提交(commit) (my-branch*)$ git commit --amend 我想要暂存一个新文件的一部分,而不是这个文件的全部 一般来说..., 如果你想暂存一个文件的一部分, 你可这样做: $ git add --patch filename.x -p 简写。...$ git fetch -p 我不小心删除了我的分支 如果你定期推送到远程, 多数情况下应该是安全的,但有些时候还是可能删除了还没有推到远程的分支。...是因你快进(Fast forward)了提交,改变了Git历史, 远程分支不会接受变化(changes),除非强推(force push)。

    1K10

    45个 GIT 经典操作场景,专治不会合代码

    我尝试推一个修正后的提交(amended commit)到远程,但是报错: To https://github.com/yourusername/repo.git ! ...暂存(Staging) 我需要把暂存的内容添加到上一次的提交(commit) (my-branch*)$ git commit --amend 我想要暂存一个新文件的一部分,而不是这个文件的全部 一般来说..., 如果你想暂存一个文件的一部分, 你可这样做: $ git add --patch filename.x -p 简写。...$ git fetch -p 我不小心删除了我的分支 如果你定期推送到远程, 多数情况下应该是安全的,但有些时候还是可能删除了还没有推到远程的分支。...是因你快进(Fast forward)了提交,改变了Git历史, 远程分支不会接受变化(changes),除非强推(force push)。

    1.1K10

    45 个Git经典操作场景,专治不会合代码

    我尝试推一个修正后的提交(amended commit)到远程,但是报错: To https://github.com/yourusername/repo.git !...暂存(Staging) 我需要把暂存的内容添加到上一次的提交(commit) (my-branch*)$ git commit --amend 我想要暂存一个新文件的一部分,而不是这个文件的全部 一般来说..., 如果你想暂存一个文件的一部分, 你可这样做: $ git add --patch filename.x -p 简写。...$ git fetch -p 我不小心删除了我的分支 如果你定期推送到远程, 多数情况下应该是安全的,但有些时候还是可能删除了还没有推到远程的分支。...是因你快进(Fast forward)了提交,改变了Git历史, 远程分支不会接受变化(changes),除非强推(force push)。

    81020

    Git 教程

    提交操作 #提交更改,实际上就是把暂存区的所有内容提交到当前分支 #会提交所有添加后的文件 git commit -m"本次提交的描述" 查看当前仓库里所有文件的状态: git status 查看一个文件修改了哪一部分...修改了一部分把它添加到了暂存区,但是又对文件进行了一波修改 #第一次修改 git add . #第二次修改,继续添加 git add ....,我们需要把本地的代码推送到远程: #在本地 git push origin master 推送完成之后,我们会发现远程里的代码和我们本地的代码一模一样。...,就是我们本地的代码和远程仓库里的代码不同步,如果你的小伙伴比你推送的时间早,那么你再推的时候就推不上去了,因为你你小伙伴最新提交和你视图推送的提交有冲突,解决办法很简单: #使用git pull拉去最新的代码...git commit -m"提交信息" git push origin 分支名称 所以在多人协作的时候流程大概是这样的: 视图把本地的代码推送到远程分支上git push origin 分支名称,结果推送失败

    1.8K45

    我看还有谁不动Git

    当我们将修改记录提交到仓库后,它们就会成为代码的一部分。 提交(Commit):Git 中的提交是指将文件或代码变更记录下来,并且提交一个说明(commit message)。...比较指定文件或目录的差异: git diff commit1> commit2> 其中 可以是文件或目录的路径,可以只比较某个文件或目录的差异。...将本地更改推送到自己的 GitHub 账户中: perlCopy code git push origin master 这将把本地的更改推送到 GitHub 上。...在 GitHub 上点击 “New pull request” 按钮,填写 PR 请求的标题和描述,并选择要合并的分支。 等待原始项目的维护者审核并接受你的 PR 请求。...当 PR 请求被接受并合并到原始项目后,你的代码贡献就完成了。 以上是在 GitHub 上贡献代码的基本步骤。

    1.6K20

    掘金500赞|前端架构师的 git 功力,你有几成火候?

    develop 是一个单独分支,对应开发环境,保留最新的完整的开发代码。它只接受 cherry-pick 的合并,不允许使用 merge。 staging 分支对应测试环境。...commit 规范与提交验证 commit 规范是指 git commit 时填写的描述信息,要符合统一规范。...比如说当前提交,你已经推送到了远程仓库;现在你用 reset 撤回了一次提交,此时本地 git 仓库要落后于远程仓库一个版本。此时你再 push,远程仓库会拒绝,要求你先 pull。...我们开始的方案是,全员开启 V**。虽然大多时候速度不错,但是确实有偶尔的一个小时,甚至一天,代码死活推不上去,严重影响开发进度。...由于这一部分内容较多,所以单独拆出去一篇文章,地址如下: 纯 Git 实现前端 CI/CD 终极应用: CI/CD 上面的一些地方也提到了持续集成,持续部署这些字眼,现在,千呼万唤始出来,主角正式登场了

    67130
    领券