2015-09-01 2 views
1

Когда я делаюКак выбрать другой файл .gitignore?

// this is in a bash script 
    git add -A . 
    git commit -m $a 
    git push test master 

, что я могу сделать, чтобы выбрать отдельный .gitignore файл. В приведенном выше методе используется .gitignore, но я хочу использовать аналогичный файл с именем .gitignore1.

Как указать файл .gitignore для использования?

Функция - p1

p1() { 
    git config --local core.excludesfile = /Users/a/root/.gitignore1 
    a=$1 
    if [ $# -eq 0 ] 
    then 
     a=$(timestamp) 
    fi 
    git add -A . 
    git commit -m $a 
    git push test master 
    echo $a 
} 

Файл - .gitignore1

/.DS_Store 
/web 

ответ

3

Вы можете установить внешний файл, чтобы игнорировать изменения:

git config --local core.excludesfile PATH_TO_GITIGNORE1 

Чтобы узнать больше взять посмотрите на this

Пример:

~/.gitignore1 - игнорировать

~/.gitignore2 - Игнорировать б

$ cat ~/.gitignore1 
a 
$ cat ~/.gitignore2 
b 

script.sh добавляет все, что можно и сделать коммит. Она принимает два аргумента: путь к файлу игнорируемых и сообщения для фиксации:

$ cat script.sh 
#!/bin/bash 
git config --local core.excludesfile $1 
git add . 
git commit -m $2 
git config --local --unset core.excludesfile 

$ git status 
On branch master 

Initial commit 

Untracked files: 
    (use "git add <file>..." to include in what will be committed) 

     a 
     b 
     script.sh 

nothing added to commit but untracked files present (use "git add" to track) 

Зафиксируйте все, что возможно (б и script.sh)

$ ./script.sh ~/.gitignore1 "First" 
[master (root-commit) 5908fbd] First 
2 files changed, 5 insertions(+) 
create mode 100644 b 
create mode 100644 script.sh 

Commit все, что можно (а)

$ ./script.sh ~/.gitignore2 "Second" 
[master d6c06d8] Second 
1 file changed, 0 insertions(+), 0 deletions(-) 
create mode 100644 a 
+0

Будет ли это изменять файл '.gitignore' для всех нажатий? –

+0

Вы можете установить эту переменную в начале вашего скрипта, а затем удалить ее в конце, как вы можете видеть, используется «локальная» область, поэтому она работает только для текущего проекта. – zaratustra

+0

Это не работает, я обновил свой вопрос, чтобы показать функцию, которую я использую с вашим кодом, и файлы не игнорируются. –

0

вы можете добавлять файлы в .git/info/exclude исключить пользовательские файлы, шаблоны вы не хотите, чтобы положить в .gitignore.

Смежные вопросы