我在公司服务器上的 linux 上有我的 git 存储库。我ssh进入我的 linux 机器并在那里编辑文件。
在我与服务器建立良好连接之前,此方法非常有用。如果连接缓慢甚至没有连接,我将无法访问我的工作,也无法完成工作。
也许我可以将我的文件从 linux 服务器复制到我的本地机器磁盘,然后运行一个脚本来侦听我的本地文件中所做的更改并将其镜像到我的远程服务器。
我经常使用Vim,我知道如何在插入模式下启动 vim。所以我有一个名为别名vii在我的.bash_aliases文件。
另一方面,我也经常使用Git,并且在我的.gitconfig:
[core]
editor = vi
Run Code Online (Sandbox Code Playgroud)
要编写提交消息,每次都会打开 vi 编辑器,我必须进入插入模式。所以我想更换的vi有vii,并且做。
但问题是,当我这样做时git commit,不是在插入模式下打开 vim,而是出现以下错误:
error: cannot run vii: No such file or directory
error: There was a problem with the editor 'vii'.
Please supply the message using either -m or -F option.
Run Code Online (Sandbox Code Playgroud)
这清楚地表明 git 不查找.bash_aliases文件,即使它与 bash 没有任何关系。它会直接查看是否存在/usr/bin/vii。如果是,则执行它。
我可以像viiin一样放置 vi 的别名版本/usr/bin/吗?
(并且请不要建议我使用git …
我apt-get install git-core。
我正在尝试在这里安装 websocketcpp https://github.com/zaphoyd/websocketpp。
我wget https://github.com/zaphoyd/websocketpp.git。
我不知道接下来要做什么。
(我已阅读/sf/ask/22113801/和http://www.thegeekstuff.com/2011/08/git-install-configure /,但我显然错过了一些东西)
我尝试git-shell在我们的 CentOS (6.4) 系统上进行设置(在 Ubuntu 13.10 上正常工作后,可能是跨平台的热点问题?)
我的/etc/passwd节目
git:x:500:500:Web Archive VCS:/home/git:/usr/bin/git-shell
Run Code Online (Sandbox Code Playgroud)
我的 shell 命令在 /home/git/git-shell-commands
[root@domain git]# cd /home/git/git-shell-commands/ && tree
.
??? addkey
??? create
??? drop
??? help
??? list
Run Code Online (Sandbox Code Playgroud)
但是 ssh'ing in 仍然给我
Last login: Fri Nov 15 12:14:49 2013 from localhost
fatal: What do you think I am? A shell?
Connection to localhost closed.
Run Code Online (Sandbox Code Playgroud)
我正在使用此资源
使用 git-shell 托管一个管理员友好的 git 服务器
有一些混淆,这是许可的 GIT 命令(推/拉等),但这是一个带有预设命令的受限 shell!请任何阅读本文的人注意;)
如果您想查看步骤,则安装程序脚本
https://github.com/ehime/bash-tools/blob/master/git-server-setup.sh
周末我仍然无法解决这个问题,我已经添加了
# add to shells
echo …Run Code Online (Sandbox Code Playgroud) 每次我尝试将 Zsh 历史文件 ( .zhistoryfile) 设为指向.zhistory位于另一个文件夹中的文件(以前存在的文件)的符号链接时,Zsh 都会删除该符号链接并使其成为常规文件。
我曾尝试在 Bash 中创建符号链接,然后切换回 Zsh,但 Zsh 仍将始终删除链接并复制文件。
为什么是这样?我怎样才能让我的.zshistory文件存在于其他地方?(在我的情况下,git 存储库不在主目录中)
我已经克隆了一个 xorg git 存储库:
git clone git://anonscm.debian.org/pkg-xorg/driver/xserver-xorg-video-intel
Run Code Online (Sandbox Code Playgroud)
我需要在提交 45c09bfe58c37bbf7965af25bdd4fa5c37c0908f 后提取所有文件
我知道如何提取指定版本的一个文件,即
git show 45c09bfe58c37bbf7965af25bdd4fa5c37c0908f:src/intel_driver.h > intel_driver.h
Run Code Online (Sandbox Code Playgroud)
但是如何提取整个结构(所有文件)?
我正在尝试连接到我在 gitlab.com 上的存储库。
它曾经在我在家和工作时在我的笔记本电脑上工作。我正在使用 ssh 并将 ssh 密钥添加到 gitlab。
几天前突然停止在家工作:我得到:
$ git pull
Connection closed by 54.93.71.23
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)
在我的工作网络中,在同一台笔记本电脑上使用 ssh 可以正常工作。
所以现在我切换到 https 并且它大部分时间都可以工作,但偶尔它会挂起,我得到:
fatal: The remote end hung up unexpectedly
error: RPC failed; result=56, HTTP code = 0
Run Code Online (Sandbox Code Playgroud)
从我的工作来看,这从未发生过,即使我尝试在半小时后提交相同的更改。
ssh 可能有什么问题?我是在路由器防火墙后面还是我的供应商改变了什么?
编辑 1: git pull 的输出,将 LogLevel DEBUG3 添加到我的 .ssh/config:
debug2: kex_parse_kexinit: none,zlib@openssh.com
debug2: kex_parse_kexinit: none,zlib@openssh.com
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit: …Run Code Online (Sandbox Code Playgroud) 我需要一个优雅的解决方案来将我的点文件存储在 GitHub 上以便于访问。我尝试创建一个dotfiles目录并将所有点文件符号链接到那里。然后我尝试将符号链接添加到 git 并在该目录中提交,但git保存链接而不是它指向的文件的内容。有没有办法做到这一点或类似的东西?
我经常不得不删除本地和远程Git分支。因此,我运行以下命令:
$ git branch -d feature-branch
$ git push --delete origin feature-branch
Run Code Online (Sandbox Code Playgroud)
由于我主要是连续执行这两个命令,因此我想为它们创建一个别名。这是我的方法:
alias gpdo='git branch -d $1 && git push --delete origin $1
Run Code Online (Sandbox Code Playgroud)
但是,这失败并出现以下错误:
致命:需要分支名称
我想要一个git openlast命令来查看上次提交,获取添加或更改的文件列表,将它们过滤为仅文本文件,最后在编辑器中打开它们。
到目前为止,我已经完成了以下工作:
git show --stat HEAD
read -p "Open in Vim tabs? (Y/n)" -n 1 -r
if [[ -z $REPLY || $REPLY =~ [Yy] ]]; then
vim -p $(git diff --diff-filter=AM --ignore-submodules --name-only HEAD^)
fi
Run Code Online (Sandbox Code Playgroud)
缺点是如果我在之前的提交中添加或更改了一个二进制文件,那么它会被编辑器打开(在这种情况下是 Vim)。有没有办法获取git diff命令输出的列表并删除二进制文件?