Вопрос: Как перейти (check out) на конкретную ветвь (branch)?
Ответ:
Используйте команду git checkout ...
Вопрос: Как не скачивать весь репозиторий, а скачать только последние n коммитов?
Ответ:
Пример:
git clone --depth=14 https://github.com/angular/angular-phonecat.git
git config --global user.name "John Smith"
git config --local user.name "John Smith"
git config --global user.email "john.smith@gmail.com"
git config --local user.email "john.smith@gmail.com"
git config -l
Вопрос: Как изменить автора последнего коммита?
Ответ:
git commit --amend --author="John Smith <john.smith@gmail.com>"
Вопрос: Как после установки Git помощью Homebrew вызывать git-gui просто по имени, а не по полному пути /usr/local/Cellar/git/2.4.1/libexec/git-core/git-gui?
Ответ:
$ cd /usr/local/bin/
Вопрос: Как настроить Git на работу с Assembla.com?
Ответ:
How to configure SSH keys with git?
Вопрос: Как изменить удаленный источник подмодуля?
Ответ:
$ nano .gitmodules
$ git submodule sync
$ git submodule foreach -q git config remote.origin.url
Вопрос: Как поменять автора всех commit-ов?
Ответ:
OS X, Linux:
git filter-branch --commit-filter '
if [ "$GIT_COMMITTER_NAME" = "<Old Name>" ];
then
GIT_COMMITTER_NAME="<New Name>";
GIT_AUTHOR_NAME="<New Name>";
GIT_COMMITTER_EMAIL="<New Email>";
GIT_AUTHOR_EMAIL="<New Email>";
git commit-tree "$@";
else
git commit-tree "$@";
fi' HEAD
Вопрос: Как сделать stash при сообщении "Please, commit your changes or stash them before you can merge."?
Ответ:
$ git status
$ git stash list
$ git stash -u
$ git stash list
$ git status
$ git pull
$ git stash pop
$ git stash list
Вопрос: Как просмотреть список ветвей в удаленном источнике?
Ответ:
git branch -r
Вопрос: Как подправить последний коммит?
Ответ:
git add .
git commit --amend
Вопрос: Как удалить коммит?
Ответ:
git log
git reset --hard <sha1-commit-id>
Вопрос: Как изменить commit?
Ответ:
git stash
git log
git rebase --interactive bbc643cd^
Меняем pick на edit у нужного коммита, для этого в Vim даем команду i (insert at current location). Далее команды :w и :q
Если нужно отменить изменения то даем команду u (undo last change)
git commit --amend
git rebase --continue
git stash apply
git push -f
Вопрос: Как игнорировать файлы типа ._ которые создаются Mac OS X?
Ответ:
Добавить в .gitignore:
# Thumbnails
._*
Вопрос: Как переименовать удаленный источник?
Ответ:
git remote rename origin destination
Вопрос: Как внести изменения локальной ветви в другую ветвь на удаленном источнике?
Ответ:
git push <remotename> <local_branch_name>:<remote_branch_name>
Вопрос: Как изменить адрес удаленного источника?
Ответ:
git remote -v
git remote set-url origin git://github.com/chief/global.git
git remote set-url --push origin git@github.com:User/forked.git
Вопрос: Как узнать адрес удаленного источника?
Ответ:
git config --get remote.origin.url
или
git remote show origin
или
Вопрос: Как отменить изменения файла, которые не были еще staged?
Ответ:
git checkout file.ext
Вопрос: Как скачать репозиторий не в папку с именем репозитория, а в свою папку?
Ответ: git clone git://github.com/schacon/grit.git mygrit
Вопрос: В локальных настройках был неправильно сконфигурирован автор и вследствие этого commit на GitHub ушел с неверным автором, как изменить автора в последнем commit-e?
Решение:
git commit --amend --author="Author Name <email@address.com>"
git push -f
Вопрос: Как присоединиться к работе над веткой?
Ответ:
Предполагается, что вы уже склонировали себе репозитарий.
Главное здесь — правильно подключить удалённую ветку. Сделать это можно с помощью ключа --track команды git checkout. Команда, приведённая ниже, создаёт локальную ветку feature и подключает её к удалённой ветке origin/feature, после чего переключается в эту ветку.
$ git checkout --track -b feature origin/feature
Branch feature set up to track remote branch refs/remotes/origin/feature.
Switched to a new branch "feature"
Это важно на данном этапе, поскольку просто команда pull смержит удалённую ветку к нам в master, а это не то, что нам нужно.
--
Вопрос: Как установить Git на Ubuntu?
Ответ:
sudo apt-get install git
sudo apt-get install git-gui
Для того чтобы запустить git-gui надо дать команду git citool.
--
Вопрос: Как сделать нормальное отображение русских имен файлов в консоли Git Bash под Windows?
Ответ: Нужно создать файл по пути C:\Users\JohnSmith\.gitconfig и прописать в него:
[core]
quotepath = false
Вопрос: Как удалить пока еще не отслеживаемые изменения в репозитории?
Ответ:
git clean -fxd {dir_path}
Вопрос: Как изменить дату коммита?
Ответ:
Вопрос: Как узнать количество измененных (unstaged) файлов?
Ответ:
$ git status -s | egrep "^ M" | wc -l
Вопрос: Как изменить сообщение коммита?
Ответ:
$ git rebase -i HEAD~n
n - количество последних коммитов среди которых находится нужный
Откроется текстовый файл в котором нужно изменить pick на reword у коммита сообщение которого вы хотите поменять. Сохранить и закрыть файл.
Далее откроется файл с сообщением коммита. Нужно его изменить и тоже сохранить и закрыть файл.
$ git push --force
Вопрос: Как коммитить без указания почтового адреса?
Ответ: Для всех репозиториев по умолчанию:
git config --global user.name 'Snail Mail'
git config --global user.email '<>'
Выведенный ключ нужно добавить у себя в настройках аккаунта.
Далее нужно настроить репозиторий на работу с GPG и потом можно коммитить.
См. также: как пользоваться GPG.
Вопрос: Как удалить папку из под мониторинга Git?
Ответ:
1) Добавьте папку в .gitignore
path_to_your_folder/
Вопрос: Как удалить (отменить) последний коммит?
Ответ:
Вопрос: Как удалить папку из всех коммитов?
Ответ:
Вопрос: Как переименовать ветку?
Ответ:
Вопрос: Как создать новую ветку?
Ответ:
Создать новую ветку и перейти на неё:
Просто создать новую ветку:
Вопрос: Как создать новую чистую ветку?
Ответ:
Вопрос: Как закоммитить файл частично?
Ответ:
git add --patch <filename> (или -p в качестве краткого варианта)
Git будет спрашивать насчет каждой порции:
Stage this hunk [y,n,q,a,d,/,j,J,g,s,e,?]?
Описание каждой опции:
Далее нужно выставить edit тем коммитам, которые требуется изменить.
Далее нужно внести необходимые изменения в коммит.
Если нужно только изменить сообщение коммита, то надо выолнить:
git commit --amend -m 'new message'
Вопрос: Где посмотреть список языков, которые можно вставлять в Markdown блоки кода?
Ответ: GitHub использует Linguist для распознавания языков. Для подсветки используются третьесторонние грамматики. Валидные ключевые слова можно найти в YAML файле языков. См. также:
Вопрос: Как изменить самый первый коммит?
Ответ:
git rebase -i --root
Вопрос: Как изменить дату последнего коммита?
Ответ:
git commit --amend --date="Sat Sep 13 01:33:14 2014 +0600"
Ответ:
Используйте команду git checkout ...
Вопрос: Как не скачивать весь репозиторий, а скачать только последние n коммитов?
Ответ:
Пример:
git clone --depth=14 https://github.com/angular/angular-phonecat.git
Вопрос: Как настроить автора коммитов?
Ответ:git config --global user.name "John Smith"
git config --local user.name "John Smith"
git config --global user.email "john.smith@gmail.com"
git config --local user.email "john.smith@gmail.com"
git config -l
Вопрос: Как изменить автора последнего коммита?
Ответ:
git commit --amend --author="John Smith <john.smith@gmail.com>"
Вопрос: Как после установки Git помощью Homebrew вызывать git-gui просто по имени, а не по полному пути /usr/local/Cellar/git/2.4.1/libexec/git-core/git-gui?
Ответ:
$ cd /usr/local/bin/
$ ln -s ../Cellar/git/2.4.1/libexec/git-core/git-gui git-gui
Вопрос: Как настроить Git на работу с Assembla.com?
Ответ:
How to configure SSH keys with git?
Вопрос: Как изменить удаленный источник подмодуля?
Ответ:
$ nano .gitmodules
$ git submodule sync
$ git submodule foreach -q git config remote.origin.url
Вопрос: Как поменять автора всех commit-ов?
Ответ:
OS X, Linux:
git filter-branch --commit-filter '
if [ "$GIT_COMMITTER_NAME" = "<Old Name>" ];
then
GIT_COMMITTER_NAME="<New Name>";
GIT_AUTHOR_NAME="<New Name>";
GIT_COMMITTER_EMAIL="<New Email>";
GIT_AUTHOR_EMAIL="<New Email>";
git commit-tree "$@";
else
git commit-tree "$@";
fi' HEAD
Windows:
git filter-branch --commit-filter "
if [ "$GIT_COMMITTER_NAME" = "<Old Name>" ];
then
GIT_COMMITTER_NAME="<New Name>";
GIT_AUTHOR_NAME="<New Name>";
GIT_COMMITTER_EMAIL="<New Email>";
GIT_AUTHOR_EMAIL="<New Email>";
git commit-tree "$@";
else
git commit-tree "$@";
fi" HEAD
Вопрос: Как сделать stash при сообщении "Please, commit your changes or stash them before you can merge."?
Ответ:
$ git status
$ git stash list
$ git stash -u
$ git stash list
$ git status
$ git pull
$ git stash pop
$ git stash list
Вопрос: Как просмотреть список ветвей в удаленном источнике?
Ответ:
git branch -r
Вопрос: Как подправить последний коммит?
Ответ:
git add .
git commit --amend
Вопрос: Как удалить коммит?
Ответ:
git log
git reset --hard <sha1-commit-id>
Вопрос: Как изменить commit?
Ответ:
git stash
git log
git rebase --interactive bbc643cd^
Меняем pick на edit у нужного коммита, для этого в Vim даем команду i (insert at current location). Далее команды :w и :q
Если нужно отменить изменения то даем команду u (undo last change)
git commit --amend
git rebase --continue
git stash apply
git push -f
Вопрос: Как игнорировать файлы типа ._ которые создаются Mac OS X?
Ответ:
Добавить в .gitignore:
# Thumbnails
._*
Вопрос: Как переименовать удаленный источник?
Ответ:
git remote rename origin destination
Вопрос: Как внести изменения локальной ветви в другую ветвь на удаленном источнике?
Ответ:
git push <remotename> <local_branch_name>:<remote_branch_name>
Вопрос: Как изменить адрес удаленного источника?
Ответ:
git remote -v
git remote set-url origin git://github.com/chief/global.git
git remote set-url --push origin git@github.com:User/forked.git
Вопрос: Как узнать адрес удаленного источника?
Ответ:
git config --get remote.origin.url
или
git remote show origin
или
git remote -v
Вопрос: Как отменить изменения файла, которые не были еще staged?
Ответ:
git checkout file.ext
Вопрос: Как скачать репозиторий не в папку с именем репозитория, а в свою папку?
Ответ: git clone git://github.com/schacon/grit.git mygrit
Вопрос: В локальных настройках был неправильно сконфигурирован автор и вследствие этого commit на GitHub ушел с неверным автором, как изменить автора в последнем commit-e?
Решение:
git commit --amend --author="Author Name <email@address.com>"
git push -f
- http://stackoverflow.com/questions/750172/how-do-i-change-the-author-of-a-commit-in-git
- http://stackoverflow.com/questions/3042437/change-commit-author-at-one-specific-commit
Вопрос: Как присоединиться к работе над веткой?
Ответ:
Предполагается, что вы уже склонировали себе репозитарий.
Главное здесь — правильно подключить удалённую ветку. Сделать это можно с помощью ключа --track команды git checkout. Команда, приведённая ниже, создаёт локальную ветку feature и подключает её к удалённой ветке origin/feature, после чего переключается в эту ветку.
$ git checkout --track -b feature origin/feature
Branch feature set up to track remote branch refs/remotes/origin/feature.
Switched to a new branch "feature"
Это важно на данном этапе, поскольку просто команда pull смержит удалённую ветку к нам в master, а это не то, что нам нужно.
--
Вопрос: Как установить Git на Ubuntu?
Ответ:
sudo apt-get install git
sudo apt-get install git-gui
Для того чтобы запустить git-gui надо дать команду git citool.
--
Вопрос: Как сделать нормальное отображение русских имен файлов в консоли Git Bash под Windows?
Ответ: Нужно создать файл по пути C:\Users\JohnSmith\.gitconfig и прописать в него:
[core]
quotepath = false
То же самое можно сделать локально для репозитория:
$ git config --local core.quotepath false
--
Вопрос: Как удалить пока еще не отслеживаемые изменения в репозитории?
Ответ:
git clean -fxd {dir_path}
Вопрос: Как изменить дату коммита?
Ответ:
git filter-branch --env-filter \
'if [ $GIT_COMMIT = 119f9ecf58069b265ab22f1f97d2b648faf932e0 ]
then
export GIT_AUTHOR_DATE="Fri Jan 2 21:38:53 2009 -0800"
export GIT_COMMITTER_DATE="Sat May 19 01:01:01 2007 -0700"
fi'
Вопрос: Как узнать количество измененных (unstaged) файлов?
Ответ:
$ git status -s | egrep "^ M" | wc -l
Вопрос: Как изменить сообщение коммита?
Ответ:
$ git rebase -i HEAD~n
n - количество последних коммитов среди которых находится нужный
Откроется текстовый файл в котором нужно изменить pick на reword у коммита сообщение которого вы хотите поменять. Сохранить и закрыть файл.
Далее откроется файл с сообщением коммита. Нужно его изменить и тоже сохранить и закрыть файл.
$ git push --force
Вопрос: Как коммитить без указания почтового адреса?
Ответ: Для всех репозиториев по умолчанию:
git config --global user.name 'Snail Mail'
git config --global user.email '<>'
или для конкретного репозитория:
git config user.name 'Snail Mail'
git config user.email '<>'
Вопрос: Как верифицировать свои коммиты?
Ответ:
Если добавить свой ключ на GitHub и коммитить с `-S`, то коммиты будут иметь бейджики "verified".
$ gpg --list-secret-keys --keyid-format LONG /Users/hubot/.gnupg/secring.gpg ------------------------------------ sec 4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10] uid Hubot ssb 4096R/42B317FD4BA89E7A 2016-03-10 $ gpg --armor --export 3AA5C34371567BD2 # Prints the GPG key ID, in ASCII armor format
Выведенный ключ нужно добавить у себя в настройках аккаунта.
Далее нужно настроить репозиторий на работу с GPG и потом можно коммитить.
$ git config commit.gpgsign true $ git config user.signingkey 3AA5C343 $ git commit -S -m your commit message $ git push
См. также: как пользоваться GPG.
Вопрос: Как удалить папку из под мониторинга Git?
Ответ:
1) Добавьте папку в .gitignore
path_to_your_folder/
2) Удалите папку из вашего local git tracking, но оставьте её на диске:
git rm -r --cached path_to_your_folder/
3) Сделайте push ваших изменений в Git-репозиторий.
Вопрос: Как удалить (отменить) последний коммит?
Ответ:
git reset HEAD~
Вопрос: Как удалить папку из всех коммитов?
Ответ:
git filter-branch -f --tree-filter 'rm -rf node_modules' --prune-empty HEAD git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git update-ref -d git gc
Вопрос: Как переименовать ветку?
Ответ:
git branch -m <oldname> <newname>
Вопрос: Как создать новую ветку?
Ответ:
Создать новую ветку и перейти на неё:
git checkout -b newbranchname a9c146a09505837ec03b
Просто создать новую ветку:
git branch newbranchname a9c146a09505837ec03b
Вопрос: Как создать новую чистую ветку?
Ответ:
git checkout --orphan newbranch git rm -rf . <do work> git add your files git commit -m 'Initial commit'
Вопрос: Как закоммитить файл частично?
Ответ:
git add --patch <filename> (или -p в качестве краткого варианта)
Git будет спрашивать насчет каждой порции:
Stage this hunk [y,n,q,a,d,/,j,J,g,s,e,?]?
Описание каждой опции:
- y stage this hunk for the next commit
- n do not stage this hunk for the next commit
- q quit; do not stage this hunk or any of the remaining hunks
- a stage this hunk and all later hunks in the file
- d do not stage this hunk or any of the later hunks in the file
- g select a hunk to go to
- / search for a hunk matching the given regex
- j leave this hunk undecided, see next undecided hunk
- J leave this hunk undecided, see next hunk
- k leave this hunk undecided, see previous undecided hunk
- K leave this hunk undecided, see previous hunk
- s split the current hunk into smaller hunks
- e manually edit the current hunk
- ? print hunk help
Если файл еще не проиндексирован:
git add -N <filename>
git add -p <filename>
Вопрос: Как изменить заданный коммит?
Ответ:
git rebase -i [COMMIT BEFORE THE FIRST YOU WANT TO EDIT]
git add -N <filename>
git add -p <filename>
Вопрос: Как изменить заданный коммит?
Ответ:
git rebase -i [COMMIT BEFORE THE FIRST YOU WANT TO EDIT]
Далее нужно выставить edit тем коммитам, которые требуется изменить.
Далее нужно внести необходимые изменения в коммит.
Если нужно только изменить сообщение коммита, то надо выолнить:
git commit --amend -m 'new message'
После завершения изменений нужно выполнить:
git rebase --continue
Вопрос: Где посмотреть список языков, которые можно вставлять в Markdown блоки кода?
Ответ: GitHub использует Linguist для распознавания языков. Для подсветки используются третьесторонние грамматики. Валидные ключевые слова можно найти в YAML файле языков. См. также:
- Creating and highlighting code blocks - User Documentation
- Syntax highlighting in markdown - Tips & Tricks — Codebase
- Languages Supported by Github Flavored Markdown
Вопрос: Как изменить самый первый коммит?
Ответ:
git rebase -i --root
Вопрос: Как изменить дату последнего коммита?
Ответ:
git commit --amend --date="Sat Sep 13 01:33:14 2014 +0600"