When using git add . uses the actual path where you're (incase is a git repo). How would I do for using git add, git commit and git push' outside of the working dir? Likegit add /Users/zad0xsis/my-git-repo`.

Can this be achieved?

  • To clarify, you want to run the add command in a git repository outside of the current working directory? Oct 6 '11 at 14:53
  • exactly, really I want to run git add, git commit and git push on a directory outside the working directory
    – pmerino
    Oct 6 '11 at 14:54

I had success using the git -C option. Taken from the Git documentation:

Run as if git was started in <path> instead of the current working directory. 

It is very important that the -C option comes before actual command you want to execute:

Wrong:   git add . -C some-path
Correct: git -C some-path add .

This can't be done because git expects everything to be housed under the same repository (directory). If /Users/zad0xsis/my-git-repo is a git repository you will need to cd to that directory and then run push, add, and commit.


According to the git docs on my system (git 1.7.6) you can adjust the working directory (where the code resides) using --work-tree or $GIT_WORK_TREE and the repository directory (where the git objects reside) using --git-dir or $GIT_DIR. If that doesn't work you could use a wrapper script, e.g.


cd /desired/path

git "$@"

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.