标签: git

GitHub - 指定时间的存储库状态

我是使用 git 版本控制工具的初学者。

我想在指定时间(例如 5.10.2013)下载存储库状态(文件)。我怎样才能做到这一点 ?

git github

11
推荐指数
2
解决办法
3929
查看次数

终端上的git branch~(END)?

要注意,我正在使用Oh-My-Zsh和git 2.17.每当我输入git branch,而不是向我显示我的git的分支时,它会显示如下内容:

~
~
~
~
~
(END)
Run Code Online (Sandbox Code Playgroud)

我可以通过按键盘上的'q'来退出此功能,但我仍然对此出现的原因感到困惑.

git terminal command-line

11
推荐指数
4
解决办法
6463
查看次数

git clone error:gnutls_handshake()失败:收到意外的TLS数据包

我在armv7l上运行Ubuntu 18.04 LTS.我在代理中运行git clone(我正确设置了代理变量),但现在我得到了这个;

fatal: unable to access '<my_git>.git/': gnutls_handshake() failed: An unexpected TLS packet was received.

它曾经在Ubuntu 16.04中工作.我已经检查了这个解决方案,但它对我不起作用.我所要做的就是克隆克隆.

git ubuntu-18.04

11
推荐指数
2
解决办法
1万
查看次数

如何使用nbconvert作为git textconv驱动程序来启用Jupyter笔记本的有效版本控制

我正在尝试做什么以及它与类似问题的区别

我想使用Git版本控制Jupyter笔记本.不幸的是,默认情况下,Git和Jupyter笔记本电脑不能很好地播放.一个.ipynb文件是一个.json含有不仅Python代码本身,而且还大量的元数据(例如,小区执行计数)和单元输出的文件.

大多数现有解决方案(例如,在版本控制下使用IPython笔记本)依赖于从笔记本中删除输出和元数据.这个(i).json在进行差异时仍然保持文件结构,这是一个难以阅读,并且(ii)意味着不能使用诸如Github上的输出显示之类的功能,因为输出在提交之前被删除.

我的想法如下:每当我运行时git diff,Git会自动使用jupyter nbconvert --to python filename.ipynb从我的*.ipynb源文件转换为*.py普通的python文件.然后它应该只检测影响代码本身的更改(不是执行计数和输出,因为它们被删除nbconvert)而不实际删除它们,它应该使我的差异比未转换的.ipynb文件更可读.我不希望.py永久存储该文件的版本; 它应该只用于git diff.我的理解是,这应该可以通过简单地指定nbconvert[diff] textconv驱动程序,但我无法让它工作.

到目前为止我已经完成的步骤

我创建了一个名为文件ipynb2py/usr/local/bin包含

#!/bin/bash
jupyter nbconvert --to python $1
Run Code Online (Sandbox Code Playgroud)

我已将以下内容添加到我的.gitconfig文件中

[diff "ipynb"]
    textconv = ipynb2py
Run Code Online (Sandbox Code Playgroud)

以及我的.gitattributes文件

*.ipynb diff=ipynb
Run Code Online (Sandbox Code Playgroud)

ipynbtextconv驱动程序分配给该.ipynb格式的所有文件.

现在,我希望git diff自动执行一个转换(我知道这会慢慢减速,但值得为VCing笔记本提供一个可行的选项)每次运行它然后显示一个很好的可读差异,只基于笔记本状态之间的差异转换后.

当我这样做时git diff,它首先说 …

python git diff jupyter-notebook

11
推荐指数
1
解决办法
368
查看次数

VSCode“请在结帐之前清理您的存储库工作树”

在Visual Studio Code中,我做了一些更改,但现在还不想提交同步。但是,在假期之后,我想同步服务器上的文件(同事的更改)。因此,在Visual Studio Code中,我想进行同步。

我收到一条消息“请在结帐前清理您的存储库工作树”

在不丢失自己未提交的更改的情况下,我该怎么做才能获取同事的文件?

git visual-studio-code

11
推荐指数
2
解决办法
2万
查看次数

如何删除远程git钩子?

我有与赫斯基一起实施的预推钩.现在我想删除它.

问题是yarn remove huskygit钩子还在里面.git/hooks.

因为我每次想要提交或切换分支或提交时都会收到此错误,因此甚至无法提交 - >

.git/hooks/pre-commit: line 6: node_modules/run-node/run-node: No such file or directory

我知道我总是可以删除里面的每个钩子,.git/hooks但我怎么能远程推送这个更改?如何不让我的队友做同样的事情?

此外,我知道我可以使用-n标志,但我仍然不想这样做,我想干净的git提交.

git hook frontend husky

11
推荐指数
4
解决办法
4608
查看次数

啤酒升级后用俄语git cli

在升级后,我的git cli切换到俄语.我试图找到原因,或者如何,但没有任何线索.

$ git --version
git version 2.19.0
Run Code Online (Sandbox Code Playgroud)

我该如何解决!?

我的语言环境根本没有提到俄语

$ locale
LANG=
LC_COLLATE="C"
LC_CTYPE="UTF-8"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)

git command-line-interface

11
推荐指数
1
解决办法
1144
查看次数

从远程repo clone写入git对象文件

几个小时我一直在努力解决这个问题.我的本地仓库以某种方式错过了提交

> git reflog expire --stale-fix --all
error: refs/tags/12.01.02 does not point to a valid object!
error: Could not read 95eeac3b5f441c9ebbd89508896c572e3eb17205
fatal: Failed to traverse parents of commit 6c24f6ea7c0452e70dea6332c6959dad6c71305f
Run Code Online (Sandbox Code Playgroud)

$ git fsck --full
Checking object directories: 100% (256/256), done.
Checking objects: 100% (159800/159800), done.
error: refs/tags/12.01.02: invalid sha1 pointer 95eeac3b5f441c9ebbd89508896c572e3eb17205
error: HEAD: invalid reflog entry 95eeac3b5f441c9ebbd89508896c572e3eb17205
Run Code Online (Sandbox Code Playgroud)

我一直在解决有关解决问题的问题.具体来说,我遇到了这个答案:

您可以尝试的第一件事是从备份中恢复丢失的项目.例如,查看是否有存储为.git/objects/98/4c11abfc9c2839b386f29c574d9e03383fa589的提交备份.如果是这样,你可以恢复它.

所以,我发现提交是在GitHub上的远程.所以我在不同的目录中创建了一个新的克隆,但是/objects大多数都是空的.有没有办法只为一次提交重新生成对象文件?

git

11
推荐指数
1
解决办法
196
查看次数

如果需要多个标准输入,python asyncio将陷入僵局

我编写了一个命令行工具,以git pull使用python asyncio 执行多个git repos。如果所有存储库均具有ssh无需密码的登录设置,则该方法可以正常工作。如果仅1个回购协议需要输入密码,它也可以正常工作。当多个存储库需要输入密码时,它似乎陷入僵局。

我的实现非常简单。主要逻辑是

utils.exec_async_tasks(
        utils.run_async(path, cmds) for path in repos.values())
Run Code Online (Sandbox Code Playgroud)

在这里run_async创建并等待子流程调用,然后exec_async_tasks运行所有任务。

async def run_async(path: str, cmds: List[str]):
    """
    Run `cmds` asynchronously in `path` directory
    """
    process = await asyncio.create_subprocess_exec(
        *cmds, stdout=asyncio.subprocess.PIPE, cwd=path)
    stdout, _ = await process.communicate()
    stdout and print(stdout.decode())


def exec_async_tasks(tasks: List[Coroutine]):
    """
    Execute tasks asynchronously
    """
    # TODO: asyncio API is nicer in python 3.7
    if platform.system() == 'Windows':
        loop = asyncio.ProactorEventLoop()
        asyncio.set_event_loop(loop)
    else:
        loop = asyncio.get_event_loop()

    try:
        loop.run_until_complete(asyncio.gather(*tasks)) …
Run Code Online (Sandbox Code Playgroud)

python git stdin subprocess python-asyncio

11
推荐指数
1
解决办法
368
查看次数

Git变基,修复冲突,然后拒绝推送

当我恢复基准时然后解决了一些冲突,就会收到以下消息:

提示:更新被拒绝,因为当前分支的尖端在后面


我们有2个分支:

  • master 是我们的基地
  • feature/fix-input-height (合并到母版中的新功能)

我正在准备feature/fix-input-height改编师父以本地解决冲突

git checkout master
git pull origin master

git checkout feature/fix-input-height
git pull origin feature/fix-input-height

git rebase master
Run Code Online (Sandbox Code Playgroud)
  • 发生冲突
  • 我解决了
  • 然后尝试推送新功能分支
git push origin feature/fix-input-height
Run Code Online (Sandbox Code Playgroud)

并再次以拒绝的错误消息结束:

提示:更新被拒绝,因为当前分支的尖端在后面


Stackoverflow上的每个人都建议:

git push origin -f feature/fix-input-height
Run Code Online (Sandbox Code Playgroud)

但是强行推动感觉不对

git rebase git-merge-conflict

11
推荐指数
1
解决办法
223
查看次数