相关疑难解决方法(0)

Git pull取决于当前的dir

我正在git pull通过root用户从任何目录尝试某个存储库.

例如,在执行git pull/root/:

#> cd ~
#> sudo -u dmalikov git --git-dir=/home/dmalikov/path/to/repo/.git pull 
/usr/libexec/git-core/git-sh-setup: line 142: cd: /root/.: Permission denied
Cannot chdir to /root/., the toplevel of the working tree
Run Code Online (Sandbox Code Playgroud)

并执行git pull来自/:

#> cd /
#> sudo -u dmalikov git --git-dir=/home/dmalikov/path/to/repo/.git pull 
Already up-to-date.
Run Code Online (Sandbox Code Playgroud)

为什么当前目录会影响git pull命令?

如何cd避免多余的?

git git-pull

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

git pull用于指定位置的本地存储库(而不是pwd)

pwd是"目前的工作目录".这是情况.

pwd:            /path/to/pwd/
git repository: /repo/path/.git/
Run Code Online (Sandbox Code Playgroud)

我想从源头做一个git pull,但不改变我当前的目录.

为了澄清一点,如果我不够清楚,这是我想要的结果,但我想用一个命令而不是必须更改目录:

$ cd /repo/path
$ git pull origin master
$ cd -
Run Code Online (Sandbox Code Playgroud)

git

13
推荐指数
1
解决办法
6867
查看次数

从另一个目录运行`git commit`

如何git commit -m '...'从另一个目录运行命令?

我编辑我的文件:

vim /home/.../myFile
Run Code Online (Sandbox Code Playgroud)

我使用以下方法添加:

git add /home/.../myFile
Run Code Online (Sandbox Code Playgroud)

但是现在,我该怎样才能提交修改?

git commit -m '...' ???
Run Code Online (Sandbox Code Playgroud)

git

8
推荐指数
2
解决办法
4696
查看次数

使用绝对路径获取Git repo url

我可以在存储库文件夹中运行以下命令的存储库路径(就像这里建议的那样):

git config --get remote.origin.url
Run Code Online (Sandbox Code Playgroud)

如何使用绝对路径获取git存储库URL?

假设我在另一个文件夹中,并且我想使用绝对路径从另一个文件夹获取存储库URL.

我尝试过这个,但是没有用.

git config --get remote.origin.url --path /home/username/myFolder
Run Code Online (Sandbox Code Playgroud)

git bash shell terminal

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

如何在不更改当前工作目录的情况下git添加文件?

我想在git中添加和提交一个文件而不更改我当前的工作目录.这可能吗?

> pwd
/tmp 

> git --git-dir=/tmp/git_test/.git init
Initialized empty Git repository in /tmp/git_test/.git/

> ls /tmp/git_test
commit1

> git --git-dir=/tmp/git_test/.git add /tmp/git_test/commit1
fatal: '/tmp/git_test/commit1' is outside repository

> git --git-dir=/tmp/git_test/.git add commit1
fatal: pathspec 'commit1' did not match any files
Run Code Online (Sandbox Code Playgroud)

(git add -A似乎使用当前的工作目录,而不是--git-dir的参数)

git

5
推荐指数
1
解决办法
1281
查看次数

指定git pull的目录(不是当前目录)

我想从git更新我现有的结账,但不在该目录内:

-sh-3.2$ pwd
/var/lib/gitolite
-sh-3.2$ git clone repositories/visits.git/
Cloning into 'visits'...
done.
-sh-3.2$ cd visits/
-sh-3.2$ git remote -v
origin  /var/lib/gitolite/repositories/visits.git/ (fetch)
origin  /var/lib/gitolite/repositories/visits.git/ (push)
-sh-3.2$ cd
-sh-3.2$ git --git-dir=/var/lib/gitolite/repositories/visits.git/ --work-tree=/var/lib/gitolite/visits/ pull 
fatal: No remote repository specified.  Please, specify either a URL or a
remote name from which new revisions should be fetched.
-sh-3.2$ cd visits/
-sh-3.2$ git pull
Already up-to-date.
-sh-3.2$ git --version
git version 1.8.2.1
-sh-3.2$ 
Run Code Online (Sandbox Code Playgroud)

我真的不明白git-dirwork-tree,有人可以解释我到底做错了什么?

git

5
推荐指数
1
解决办法
858
查看次数

在git hook中操作repo时-C和-git-dir之间的区别

我正在编写一个git post-receive钩子,它将克隆一个单独的repo作为部署的一部分.它将repo克隆到某个文件夹,并使用-C后续git命令中的选项将目录设置为已检出的repo的目录(如手册页中所述).

当从命令行手动运行时,钩子按预期工作,但是当钩子由git运行时(即,当接收到推送时)命令失败fatal: Not a git repository: '.'.当我换出-C--git-dir它的工作原理.

这很容易重现,创建一个裸仓库git init --bare并使用内容创建一个可执行钩子:

#!/bin/bash
set -xe

SOME_REPO_URL=???? # Some repo that is not this one
repopath=/tmp/somerepo

git clone $SOME_REPO_URL $repopath

# 1: This fails when run through the git hook
git -C $repopath checkout -b somebranch HEAD~1

# 2: This works every time
# git --git-dir $repopath/.git checkout -b somebranch HEAD~1
Run Code Online (Sandbox Code Playgroud)

从命令行运行脚本将按预期工作,但是当您推送到repo时,挂钩将失败.在两种情况下,评论1和取消评论2都有效.

我找不到任何表明这是预期行为的文档 - 我将不胜感激.

这是Ubuntu …

git githooks

5
推荐指数
1
解决办法
2940
查看次数

git --git-dir无法在windows中运行

在Git的钩子脚本中,我试图运行这样的命令..

请参考(git --git-dir未按预期工作)

git log --name-status --git-dir="C:\Documents and Settings\user\My Documents\Visual Studio 2008\Projects\CMS\.git" --work-tree="C:\Documents and Settings\user\My Documents\Visual Studio 2008\Projects\CMS"
Run Code Online (Sandbox Code Playgroud)

当我运行此命令时,我收到以下错误.

fatal: Not a git repository (or any of the parent directories): .git
Run Code Online (Sandbox Code Playgroud)

我使用的命令有什么问题吗?

git msysgit

4
推荐指数
2
解决办法
2671
查看次数

我可以 git push 另一个目录吗?

我想编写一个批处理文件来运行git addgit commitgit push在我的机器上的一堆存储库上运行,这样我就不必每次都手动执行。git 命令有目录路径参数吗?

git

4
推荐指数
1
解决办法
2719
查看次数

标签 统计

git ×9

bash ×1

git-pull ×1

githooks ×1

msysgit ×1

shell ×1

terminal ×1