我是使用 git 版本控制工具的初学者。
我想在指定时间(例如 5.10.2013)下载存储库状态(文件)。我怎样才能做到这一点 ?
要注意,我正在使用Oh-My-Zsh和git 2.17.每当我输入git branch,而不是向我显示我的git的分支时,它会显示如下内容:
~
~
~
~
~
(END)
Run Code Online (Sandbox Code Playgroud)
我可以通过按键盘上的'q'来退出此功能,但我仍然对此出现的原因感到困惑.
我在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版本控制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,它首先说 …
在Visual Studio Code中,我做了一些更改,但现在还不想提交同步。但是,在假期之后,我想同步服务器上的文件(同事的更改)。因此,在Visual Studio Code中,我想进行同步。
我收到一条消息“请在结帐前清理您的存储库工作树”
在不丢失自己未提交的更改的情况下,我该怎么做才能获取同事的文件?
我有与赫斯基一起实施的预推钩.现在我想删除它.
问题是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 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 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 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) 当我恢复基准时,然后解决了一些冲突,就会收到以下消息:
提示:更新被拒绝,因为当前分支的尖端在后面
我们有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 ×10
python ×2
command-line ×1
diff ×1
frontend ×1
github ×1
hook ×1
husky ×1
rebase ×1
stdin ×1
subprocess ×1
terminal ×1
ubuntu-18.04 ×1