标签: git

将本地文件同步到远程 git 仓库

我在公司服务器上的 linux 上有我的 git 存储库。我ssh进入我的 linux 机器并在那里编辑文件。

问题

在我与服务器建立良好连接之前,此方法非常有用。如果连接缓慢甚至没有连接,我将无法访问我的工作,也无法完成工作。

潜在解决方案

也许我可以将我的文件从 linux 服务器复制到我的本地机器磁盘,然后运行一个脚本来侦听我的本地文件中所做的更改并将其镜像到我的远程服务器。

  • 我正在使用 Git,任何解决方案也应该涵盖 git 文件。
  • 如果我失去了连接,我应该能够继续处理本地文件,并且一旦连接建立脚本应该将我的更改镜像到远程服务器。
  • 我的机器运行 Mac OSX Lion。

git rsync

3
推荐指数
1
解决办法
4698
查看次数

将现有命令的别名版本放在 /usr/bin/ 中

经常使用Vim,我知道如何在插入模式下启动 vim。所以我有一个名为别名vii在我的.bash_aliases文件。

另一方面,我也经常使用Git,并且在我的.gitconfig:

[core]
    editor = vi
Run Code Online (Sandbox Code Playgroud)

要编写提交消息,每次都会打开 vi 编辑器,我必须进入插入模式。所以我想更换的vivii,并且做。

但问题是,当我这样做时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 …

bash vim git alias executable

3
推荐指数
2
解决办法
774
查看次数

如何安装 .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 software-installation

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

授予对受限 git shell 的访问权限

我尝试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)

shell ssh centos git

3
推荐指数
1
解决办法
2957
查看次数

无法使 .zhistory 成为符号链接

每次我尝试将 Zsh 历史文件 ( .zhistoryfile) 设为指向.zhistory位于另一个文件夹中的文件(以前存在的文件)的符号链接时,Zsh 都会删除该符号链接并使其成为常规文件。

我曾尝试在 Bash 中创建符号链接,然后切换回 Zsh,但 Zsh 仍将始终删除链接并复制文件。

为什么是这样?我怎样才能让我的.zshistory文件存在于其他地方?(在我的情况下,git 存储库不在主目录中)

command-history zsh git

3
推荐指数
1
解决办法
722
查看次数

在给定时间提取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)

但是如何提取整个结构(所有文件)?

git

3
推荐指数
1
解决办法
2281
查看次数

到 gitlab.com 的 ssh 连接在家用路由器后面失败,但在工作场所时很好。然而,Github 和 Bitbucket over ssh 在家也可以

我正在尝试连接到我在 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)

ssh git https

3
推荐指数
1
解决办法
1987
查看次数

在 GitHub 上存储 Dotfile 的优雅方式

我需要一个优雅的解决方案来将我的点文件存储在 GitHub 上以便于访问。我尝试创建一个dotfiles目录并将所有点文件符号链接到那里。然后我尝试将符号链接添加到 git 并在该目录中提交,但git保存链接而不是它指向的文件的内容。有没有办法做到这一点或类似的东西?

git symlink home dot-files github

3
推荐指数
1
解决办法
4947
查看次数

如何为使用参数的两个 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)

但是,这失败并出现以下错误:

致命:需要分支名称

shell bash zsh git alias

3
推荐指数
1
解决办法
3983
查看次数

如何过滤纯文本文件的文件列表?

我想要一个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命令输出的列表并删除二进制文件?

bash git

3
推荐指数
1
解决办法
1735
查看次数