#git bot interface
Recent changes to triggers
Click on one of the triggers to get its edit history.
- !filter-repo
- A third-party git add-on that can quickly rewrite git history. See https://github.com/newren/git-filter-repo. -- ikke at 2024-03-23 12:57:50
- !anyone
- Usually, it does not help to ask for someone specific to help you. Without knowing your specific problem, nobody knows if they can be of assistance. Please ask your question and wait until somebody speaks up. -- j416 at 2024-02-28 18:37:04
- !book
- There are several good books available about git; 'Pro Git' is probably the best: https://git-scm.com/book (free web version and downloads) but also look at !bottomup !cs !gcs !designers !gitt !vcbe and !parable -- jast at 2023-08-08 15:09:55
- !concepts
- "Git Concepts Simplified" presents all the important structures in Git, step by step, including selected internal details so it becomes much easier to understand what's going on whenever something's going on. https://gitolite.com/gcs.html -- jast at 2023-08-08 15:06:57
- !concepts
- "Git Concepts Simplified" presents all the important structures in Git, step by step, including selected internal details so it becomes much easier to understand what's going on whenever something's going on. http -- jast at 2023-08-08 15:06:45
- !understand
- You might wanna see http://devopsreactions.tumblr.com/post/104064772852/understanding-git -- SilentGhost at 2022-11-05 09:43:22
- !lol
- git log --oneline --graph --all -- ikke at 2022-06-07 14:50:03
- !topgit
- TopGit is a patch queuing system, allowing you to manage a series of topic branches that apply on top of a main branch. https://mackyle.github.io/topgit/topgit.html -- jast at 2022-04-13 18:25:23
- !situation
- Please post the url returned by ' git log -n 20 --all --graph --format="%h %p %d %s" | curl -F text=@- https://upaste.de ' to give us an idea about what your situation is (increase the -n argument if your problem is more complex than 20 commits can explain) -- canton7 at 2022-02-04 15:30:25
- !split_repository
- @!filter_subdirectory -- canton7 at 2022-01-26 15:17:58
- !gitflow
- The description of the gitflow branch workflow model is at http://nvie.com/posts/a-successful-git-branching-model/ while a tool to help implement this workflow is at https://github.com/petervanderdoes/gitflow See http://sethrobertson.github.io/GitBestPractices/#workflow for other workflow suggestions/references -- canton7 at 2022-01-26 14:50:05
- !dotfiles
- There are various issues associated with keeping dot-files in git (permissions, avoiding having a .git in ~/ or /). One attempt to manage this is http://dotfiles.github.io/ and there is a wiki about it here: http://vcs-home.branchable.com -- canton7 at 2022-01-26 14:49:26
- !backup
- Worried about your data while trying stuff out in your repo? The repository in its entirety lives inside the .git directory in the root of your work tree so to backup everything `cp -a path/to/workdir path/to/backup` or equivalent will suffice as long as the repo is not modified during backup. See also http://sethrobertson.github.io/GitBestPractices/#backups -- canton7 at 2022-01-26 14:48:41
- !backup
- Worried about your data while trying stuff out in your repo? The repository in its entirety lives inside the .git directory in the root of your work tree so to backup everything `cp -a path/to/workdir path/to/backup` or equivalent will suffice as long as the repo is not modified during backup. See also -- canton7 at 2022-01-26 14:48:09
- !best_practices
- There is no one right answer for git best practices, but a consensus from #git is available at http://sethrobertson.github.io/GitBestPractices/ -- canton7 at 2022-01-26 14:47:49
- !workflow
- Finding the right workflow for you is critical for the success of any SCM project. Git is very flexible with respect to workflow. See http://sethrobertson.github.io/GitBestPractices/#workflow for a list of references about choosing branching and distributed workflows. -- canton7 at 2022-01-26 14:47:21
- !sausage_making
- Some developers like to "hide the sausage making", transforming their commits before presenting them to the outside world. See http://sethrobertson.github.io/GitBestPractices/#sausage and !perfect -- canton7 at 2022-01-26 14:46:30
- !dropbox
- Use git-remote-dropbox instead of placing your repository directly in the "Dropbox folder", or you'll get sync errors (and eventually, a corrupted repo). https://github.com/anishathalye/git-remote-dropbox -- canton7 at 2021-11-11 22:25:27
- !checkout-reset
- Having trouble keeping all of the various forms of "git checkout" and "git reset" apart? Here's an overview: https://gitirc.eu/help/checkout-reset.html -- jast at 2021-09-28 13:18:21
- !book
- There are several good books available about git; 'Pro Git' is probably the best: https://git-scm.com/book but also look at !bottomup !cs !gcs !designers !gitt !vcbe and !parable -- ikke at 2021-08-02 05:38:09
- !gitt
- A book designed to teach people about Git in a real world usage model. The book follows a fictional company as they implement and learn about Git. Covers all 21 standard Git commands. Available for free at http://cbx33.github.io/gitt/ -- ikke at 2021-06-02 16:30:11
- !vcbe
- 'Version Control By Example' gives a good overview of the different VCSes available. The author will even mail you a dead-tree copy for free. https://ericsink.com/vcbe/index.html -- ikke at 2021-06-02 16:28:56
- !visualize_ops
- Visualize common operations: https://onlywei.github.io/explain-git-with-d3/ . See also !learn_git_branching -- canton7 at 2021-05-17 13:26:13
- !learn_git_branching
- A nice tutorial visualizing git branching: http://pcottle.github.io/learnGitBranching/ . See also !visualize_ops -- canton7 at 2021-05-17 13:25:36
- !postproduction
- So, you want to make your commit history look pretty before pushing? http://sethrobertson.github.io/GitPostProduction talks you through how to use 'rebase -i' to do this. -- ikke at 2021-04-28 17:54:50
- !visops
- @!visualize_ops -- osse at 2020-11-01 12:49:51
- !vizops
- @!visualize_ops -- osse at 2020-11-01 12:46:18
- !visualize_ops
- Visualize common operations: https://onlywei.github.io/explain-git-with-d3/ -- osse at 2020-11-01 12:45:46
- !lgg
- lol git gud(tm) -- jast at 2020-09-04 18:44:52
- !gitignore_whitedir
- A global/directory .gitignore blacklist with a (potentially) subdirectory whitelist is not easy to specify in git. However, something like `printf '%s\n' '/*' '!/a/' '/a/*' '!/a/b/' '/a/b/*' '!/a/b/c/' > .gitignore` (ignore everything but a/b/c directory) or `printf '%s\n' '*' '!*/' '!*.txt' > .gitignore` (ignore everything but *.txt files) may do what you want. -- ikke at 2020-08-07 14:39:59
- !gitignore_whitedir
- A global/directory .gitignore blacklist with a (potentially) subdirectory whitelist is not easy to specify in git. However, something like `printf "%s\n" '/*' '!/a/' '/a/*' '!/a/b/' '/a/b/*' '!/a/b/c/' > .gitignore` (ignore everything but a/b/c directory) or `printf '*' '!*/' '!*.txt' > .gitignore` (ignore everything but *.txt files) may do what you want. -- ikke at 2020-08-07 14:38:25
- !user.name
- The author and committer names are by convention some form of a personal name (that is, the name by which other humans refer to you). This name has no effect on authentication; for that, see the credential.username variable in git-config(1). -- rafasc at 2020-07-16 17:31:13
- !partial_clone
- The "Partial Clone" feature is a performance optimization for Git that allows Git to function without having a complete copy of the repository. (https://git-scm.com/docs/partial-clone https://github.blog/2020-01-17-bring-your-monorepo-down-to-size-with-sparse-checkout https://about.gitlab.com/blog/2020/03/13/partial-clone-for-massive-repositories/) -- rafasc at 2020-06-11 20:23:31
- !precious
- @!ignore_disposable -- ikke at 2020-05-19 19:00:50
- !precious
- @.ignore_disposable -- ikke at 2020-05-19 19:00:39
- !gitignore_disposable
- git treats ignored files as disposable, and might remove them if some operation requires it without warning. See https://public-inbox.org/git/7viq39avay.fsf@alter.siamese.dyndns.org/#t -- ikke at 2020-05-19 19:00:05
- !subtrac
- @!git-subtrac -- rafasc at 2020-04-29 00:56:06
- !git-subtrac
- git-subtrac is a helper tool that makes it easier to keep track of your git submodule contents. It collects the entire contents of the entire history of all your submodules (recursively) into a separate git branch, which can be pushed, pulled, forked, and merged however you want. https://github.com/apenwarr/git-subtrac -- rafasc at 2020-04-29 00:54:39
- !nogui
- @!gui -- rafasc at 2020-03-24 02:14:41
- !float
- If you have made a change in your working directory and have NOT YET COMMITTED, you may "float" that change over to another (`git checkout existing_branch`) or new (`git checkout -b newbranch`) branch and commit it there. If the files you changed differ between branches, the checkout will fail. In that case, `git stash` then checkout, and `git stash apply` and go through normal conflict resolution. -- ikke at 2020-02-25 18:37:24
- !float
- If you have made a change in your working directory and have NOT YET COMMITTED, you may "float" that change over to another (`git checkout branch`) or new (`git checkout -b newbranch`) branch and commit it there. If the files you changed differ between branches, the checkout will fail. In that case, `git stash` then checkout, and `git stash apply` and go through normal conflict resolution. -- ikke at 2020-02-25 18:36:09
- !float
- If you have made a change in your working directory and have NOT YET COMMITTED, you may "float" that change over to another (`git checkout branch`) or new (`git checkout -b newbranch`) branch and commit it there. If the files you changed differ between branches, the checkout will fail. In that case, `git stash` then checkout, and `git stash apply` and go through normal conflict -- ikke at 2020-02-25 18:26:08
- !float
- If you have made a change in your working directory and have NOT YET COMMITTED, you may "float" that change over to another (`git checkout existing_branch`) or new (`git checkout -b newbranch`) branch and commit it there. If the files you changed differ between branches, the checkout will fail. In that case, `git stash` then checkout, and `git stash apply` and go through normal -- ikke at 2020-02-25 18:25:40
- !float
- If you have made a change in your working directory and have NOT YET COMMITTED, you may "float" that change over to another (`git checkout existing_branch`) or new (`git checkout -b newbranch`) branch and commit it there. If the files you changed differ between branches, the checkout will fail. n that case, `git stash` then checkout, and `git stash apply` and go through normal -- ikke at 2020-02-25 18:23:00
- !filter_branch
- @!filter-branch -- ikke at 2020-02-19 13:43:33
- !filter-repo
- A new git add-on that greatly improves on git-filter-branch: https://github.com/newren/git-filter-repo -- ikke at 2020-02-19 13:43:17
- !hash
- @!sha1 -- Eugene at 2020-01-30 21:27:56
- !hash
- @sha1 -- Eugene at 2020-01-30 21:27:35
- !sha1
- git uses a variant of the SHA1 cryptographic hash algorithm to ensure object integrity. Git v2.13.0 added hardening to the SHA-1 implementation to mitigate SHAttered; work towards a NewHash is underway: https://git.io/vpIMJ | Please note that purposeful SHA1 collisions are computationally expensive, and accidental encounters are more likely with wolves. https://en.wikipedia.org/wiki/Wolf_attacks Fear their howl! -- Eugene at 2020-01-30 21:27:27
- !fixup
- So you lost or broke something or need to otherwise find, fix, or delete commits? Look at https://sukima.github.io/GitFixUm/ for full instructions, or !fixup_hints for the tl;dr. Warning: changing old commits will require you to !rewrite published history! -- canton7 at 2020-01-24 09:45:15
- !reflog
- The git reflog (`git log -g`) temporarily (90 days by default) snapshots your branch states at each operation that changes the branch, making it easy to undo e.g. merges and rebases. The usual warnings about !rewriting/undoing history apply. See https://sukima.github.io/GitFixUm/ for full details. -- canton7 at 2020-01-24 09:44:47
- !reflog
- tThe git reflog (`git log -g`) temporarily (90 days by default) snapshots your branch states at each operation that changes the branch, making it easy to undo e.g. merges and rebases. The usual warnings about !rewriting/undoing history apply. See https://sukima.github.io/GitFixUm/ for full details. -- canton7 at 2020-01-24 09:44:41
- !ml
- @!mailing_list -- rafasc at 2019-11-15 04:39:06
- !filter-repo
- https://github.com/newren/git-filter-repo -- rafasc at 2019-10-01 21:05:29
- !gitcal
- Development calendar in UTC: https://calendar.google.com/calendar/embed?src=jfgbl2mrlipp4pb6ieih0qr3so@group.calendar.google.com -- rafasc at 2019-10-01 16:36:46
- !NEXT
- @!next -- jast at 2019-09-09 13:15:20
- !LearnGitBranching
- @!learn_git_branching -- rafasc at 2019-06-06 23:35:31
- !fact
- @!triggers -- Eugene at 2019-05-31 16:32:19
- !git_vs_github
- @!github_vs_git -- jast at 2019-05-06 20:47:42
- !send-email
- Couple of guides on how to use git send-email: https://git-send-email.io/ https://flusp.ime.usp.br/git/2019/02/15/sending-patches-by-email-with-git/ -- rafasc at 2019-04-15 22:43:59
- !send-email
- A handy guide on how to use git send-email https://git-send-email.io/ -- rafasc at 2019-04-04 18:07:02
- !botsrc
- https://notabug.org/jast/gitinfo -- jast at 2019-03-14 13:56:55
- !prompt
- The bash completion script developed with git (https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh) and the one for zsh shipped with zsh (http://gitready.com/advanced/2009/01/28/zsh-git-status.html) both support showing the status of your repo in the prompt string, at a glance -- canton7 at 2019-02-09 17:19:33
- !fetchfour
- Before 1.8.4, 'git fetch/pull' with a remote AND branch argument tended to be confusing because they didn't update the remote-tracking branch (the thing shown by 'git branch -r'). If you're stuck with an old version, it's usually better to pass no arguments, or at least only a remote. Workaround example to fetch only the 'foo' branch: git fetch origin refs/heads/foo:refs/remotes/origin/foo -- jast at 2019-01-02 14:02:11
- !fetch4why
- [pre 1.8.4] The four-word version of git-fetch doesn't update remote-tracking branches and tags. It fetches into FETCH_HEAD only; you probably don't want to have to deal with that. Pull in four-word form automatically uses FETCH_HEAD, but your remote-tracking will still be outdated. Even updating them manually with 'git fetch origin master:remotes/origin/master' (clunky) still doesn't update tags. -- canton7 at 2018-10-27 17:47:03
- !github_pull
- To check out a GitHub pull request in your local repo, see this documentation: https://help.github.com/articles/checking-out-pull-requests-locally/ -- canton7 at 2018-10-26 09:24:16
- !github_pr
- @!github_pull -- canton7 at 2018-10-26 09:23:51
- !github_pull
- To check out a pull request in your local repo, see this documentation: https://help.github.com/articles/checking-out-pull-requests-locally/ -- canton7 at 2018-10-26 09:23:42
- !faulty_merge
- If you have published a merge commit that turned out to be faulty and you'd like to get rid of it, you can use 'git revert' but there are gotchas to be aware of. Please read: https://raw.github.com/git/git/master/Documentation/howto/revert-a-faulty-merge.txt -- canton7 at 2018-10-19 12:21:59
- !fr
- Il y a un canal de discussion français sur #git-fr -- osse at 2018-10-03 13:19:11
- !fr
- Il y a un canal de discussion français à #git-fr -- osse at 2018-10-03 13:14:19
- !reflog
- The git reflog (`git log -g`) temporarily (90 days by default) snapshots your branch states at each operation that changes the branch, making it easy to undo e.g. merges and rebases. The usual warnings about !rewriting/undoing history apply. See http://sethrobertson.github.com/GitFixUm/ for full details. -- jast at 2018-09-24 08:03:11
- !reflog
- The git reflog (`git log -g`) temporarily (2+ weeks) snapshots your branch states at each operation that changes the branch, making it easy to undo e.g. merges and rebases. The usual warnings about !rewriting/undoing history apply. See http://sethrobertson.github.com/GitFixUm/ for full details. -- jast at 2018-09-24 08:02:10
- !fr
- Il y a une chaîne française à #git-fr -- osse at 2018-09-21 08:16:38
- !learn-git-branching
- @!learn_git_branching -- canton7 at 2018-06-25 11:35:40
- !hosting
- There are many hosting options available for git repositories, including !github !gitlab !gitolite and many more: https://git.wiki.kernel.org/index.php/GitHosting -- Eugene at 2018-06-19 18:54:18
- !gitlab
- GitLab is a !3rdparty commercial service offering freemium !hosting services for repositories & projects. It has an "Open Core" that you can run on your own server. https://about.gitlab.com/product/ -- Eugene at 2018-06-19 18:52:45
- !github
- GitHub is a !3rdparty commercial service offering freemium !hosting services for repositories & projects. https://github.com/features -- Eugene at 2018-06-19 18:52:16
- !gitlab
- GitLab is a !3rdparty commercial service offering freemium repository & project hosting, with an "Open Core" that you can run on your own systems. https://about.gitlab.com/product/ -- Eugene at 2018-06-19 18:49:25
- !github
- GitHub is a !3rdparty commercial service offering freemium repository & project hosting. -- Eugene at 2018-06-19 18:48:32
- !github
- Github is a !3rdparty commercial service offering freemium repository & project hosting. -- Eugene at 2018-06-19 18:48:12
- !3rdparty
- Your question is about a third-party tool or service, not a core `git` component. It is OK to ask, but replies are not guaranteed -- Eugene at 2018-06-19 18:47:18
- !git_sizer
- A tool to find potential issues with repositories from github, See: https://blog.github.com/2018-03-05-measuring-the-many-sizes-of-a-git-repository/ -- ikke at 2018-05-15 20:19:12
- !situation
- Please post the url returned by `git log -n 20 --all --graph --format="%h %p %d %s" | curl -F text=@- https://upaste.de/` to give us an idea about what your situation is (increase the -n argument if your problem is more complex than 20 commits can explain) -- rafasc at 2018-04-30 18:47:51
- !situation
- Please pastebin the relevant output of `git log -n 20 --all --graph --format="%h %p %d %s" | curl -F text=@- https://upaste.de/` to give us an idea about what your situation is (increase the -n argument if your problem is more complex than 20 commits can explain) -- rafasc at 2018-04-30 18:42:13
- !sha1
- git uses a variant of the SHA1 cryptographic hash algorithm to ensure object integrity. Git v2.13.0 added hardening to the SHA-1 implementation to mitigate SHAttered; work towards a NewHash is underway: https://git.io/vpIMJ | Please note that purposeful SHA1 collisions are computationally expensive, and accidental encounters are more likely with wolves. https://en.wikipedia.org/wiki/Wolf_attacks_on_humans Fear their howl. -- Eugene at 2018-04-18 20:16:25
- !sha1
- Git's usage of SHA1 hashes is resistant to most attack vectors. Git v2.13.0 added hardening to the SHA-1 implementation to mitigate SHAttered; work towards a NewHash is underway: https://github.com/git/git/blob/master/Documentation/technical/hash-function-transition.txt | Please note that constructing an actual SHA1 collision is still computationally expensive, and accidental encounters are less likely than wolf attacks. Fear their -- Eugene at 2018-04-18 20:09:04
- !glossary
- New to git's litany of somewhat eclectic terms and phrases? Check out the glossary manpage and learn all about refspecs and evil merges: https://gitirc.eu/gitglossary.html -- jast at 2018-04-16 06:50:24
- !bundle
- Bundles are packfiles containing commits and associated data that you can use to transfer Git history manually. For more information, see the 'git-bundle' manpage: https://gitirc.eu/git-bundle.html -- jast at 2018-03-09 15:52:14
- !interactive_rebase
- Interactive rebase sounds similar to rebase but has completely different abilities. It can do this to commits: change the order, squash some of them together, remove some, add random existing commits from other branches, split them, and more... it's very powerful. Documentation is in the section "Interactive Rebase" in 'man git-rebase'. https://gitirc.eu/git-rebase.html -- jast at 2018-01-23 09:47:26
- !disthooks
- @!commit_hooks -- jast at 2018-01-19 08:43:40
- !commit_hooks
- It would be a huge security risk if git allowed you to commit hooks. You have to manually add them to the server. Third-party Git hosting sites (github, bitbucket...) usually don't allow custom hooks, you can only have them send HTTP POST requests to a custom URL to get notified of events. For client-side hooks, we recommend including them in the repo along with a script users can run to set them up. -- jast at 2018-01-19 08:42:47
- !commit_hooks
- It would be a huge security risk if git allowed you to commit hooks. You have to manually add them to the server. Third-party Git hosting sites (github, bitbucket...) usually don't allow custom hooks, you can only have them send HTTP POST requests to a custom URL to get notified of events. -- jast at 2018-01-19 08:42:11
- !gitlink
- Linking examples: git::master:Documentation/ (tree), git::master (shortlog), git::master^{commit} (commit), git::master/tree.h (file) -- also: git[notabug jast/gitinfo] master:http.pm (currently supported providers: github gitlab bitbucket kernel repo notabug) -- jast at 2018-01-19 08:31:10
- !irclog
- Public logs of #git are kept at: https://gitirc.eu/log -- jast at 2017-12-13 10:09:56
- !paste
- Please use a pastebin for snippets longer than one line. Persistent and can be used with a GitHub account: https://gist.github.com/ - one hour auto-delete: https://upaste.de/ -- jast at 2017-12-13 09:31:04
- !crlf
- To fix problems with line ending on different platforms, check out http://line-endings.gitrecipes.de/. Line ending normalization can be the cause of changed files that appear to not go away. -- ikke at 2017-12-08 13:57:21
- !crlf
- To fix problems with line ending on different platforms, check out http://line-endings.gitrecipes.de/. Line ending normalization can be the cause of changed files that appear not to go away. -- ikke at 2017-12-08 13:55:05
- !crlf
- to fix problems with line endings on different platforms, check out http://line-endings.gitrecipes.de/ -- ikke at 2017-12-08 13:53:07
- !otherbranches
- @!wherearemybranches -- jast at 2017-12-05 14:26:01
- !pm
- @!privmsg -- jast at 2017-12-05 14:17:54
- !pm
- @!private -- jast at 2017-12-05 14:17:27
- !cthulhu
- @!cthulu -- jast at 2017-12-05 14:07:00
- !situation
- Please pastebin the relevant output of `git log -n 20 --all --graph --format="%h %p %d %s"` to give us an idea about what your situation is (increase the -n argument if your problem is more complex than 20 commits can explain) -- ikke at 2017-11-19 18:22:59
- !xy
- You are asking about a solution, but we can help you a lot better if you could describe the actual problem you are trying to solve. -- ikke at 2017-11-19 17:18:21
- !cthulu
- See https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2cde51fbd0f3 and https://marc.info/?l=linux-kernel&m=139033182525831 -- canton7 at 2017-11-13 13:16:29
- !force_push
- If you need to overwrite the history of a remote git repository (be carefull, see !rewrite), you can do so with `git push --force-with-lease`. Note that the remote server may reject this. See man git-config and search for receive.denyNonFastForwards. Best practice is for upstream servers to denyNonFastForwards. -- ikke at 2017-11-07 16:32:26
- !lfs
- @!annex -- rafasc at 2017-10-27 04:12:18
- !paste
- Please use a pastebin for snippets longer than one line. https://gist.github.com and https://upaste.de/ both work well. -- jast at 2017-10-25 09:52:59
- !remote-tracking-branches
- @!remote_tracking_branch -- canton7 at 2017-10-25 09:39:28
- !irclog
- Public logs of #git are kept at: https://gitirc.eu/log or see stats for the last 30 days: https://itvends.com/irc/git.html or for all time (give or take): https://itvends.com/irc/git-all.html -- jast at 2017-10-16 07:09:46
- !credentials
- @!credential-cache -- tobiasvl at 2017-09-27 12:47:58
- !remote_branches
- @!remote_tracking_branch -- tobiasvl at 2017-09-26 11:24:19
- !remote-tracking_branch
- @!remote_tracking_branch -- tobiasvl at 2017-09-26 11:20:37
- !remote-tracking_branches
- @!remote_tracking_branch -- tobiasvl at 2017-09-26 11:20:34
- !remote_tracking_branches
- @!remote_tracking_branch -- tobiasvl at 2017-09-26 11:20:21
- !bottomup
- 'Git from the bottom up' starts with explaining the building blocks of git and proceeds to tell you how they fit together. https://jwiegley.github.io/git-from-the-bottom-up/ -- jast at 2017-09-17 21:40:17
- !set_upstream
- To tell git which remote branch to use in pull (and push if you set push.default to upstream) for a given branch foo, use something like: git branch --set-upstream-to origin/foo foo -- ikke at 2017-08-19 12:10:57
- !github
- Note that github != git. Feel free to ask us about Github-specific features (Forks, Pull Requests, Wikis, etc), but there are no guarantees. There is a #github channel, which might help too (again, no guarantees) -- ikke at 2017-08-12 19:00:05
- !karma
- This channel is equipped with karma measuring devices. If you want to help someone to karmic nirvana, please mention their name when thanking them ("thank you", "thanks", "thx", etc.). Try ".karma <nick>" or ".topkarma" to show karma status of a person but don't expect immediate increase. Karma is not for those seeking instant gratification. -- jast at 2017-08-09 13:23:44
- !karma
- This channel tracks karma based on who has gotten lots of thanks for being helpful. If you want to help someone reach karmic nirvana, please mention their name when thanking them with "thank you", "thankyou", "thanks", "thx", "ty" or "cheers". Try ".karma <nick>" or ".topkarma" to show karma status of a person but don't expect immediate increase. Thanks are transformed into karma points based on an ultra-secret formula. -- jast at 2017-06-21 12:25:18
- !remote_tracking_branch
- Remote-tracking branches (branches which start with e.g. 'origin/', listed by 'git branch -r') are read-only mirrors of the branches in another repository. They're updated by 'git fetch'. You can't edit them directly (trying to check them out results in a !detached HEAD), but you can create a local branch based on a remote-tracking branch using e.g. 'git checkout -b <branch> <remote>/<branch>' -- vampire0 at 2017-06-21 00:51:44
- !cthulu
- See https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2cde51fbd0f3 -- canton7 at 2017-05-26 10:35:58
- !bottomup
- 'Git from the bottom up' starts with explaining the building blocks of git and proceeds to tell you how they fit together. http://ikke.info/git.from.bottom.up.pdf -- vampire0 at 2017-05-09 00:20:45
- !karma
- This channel tracks karma based on who has gotten lots of thanks for being helpful. If you want to help someone reach karmic nirvana, please mention their name when thanking them with "thank you", "thankyou", "thanks", "thx", "ty" or "cheers". Try ".karma <nick>" or ".topkarma" to show karma status of a person but don't expect immediate increase. Ten thanks make up one karma point. -- vampire0 at 2017-05-07 21:16:44
- !gitignore_whitedir
- A global/directory .gitignore blacklist with a (potentially) subdirectory whitelist is not easy to specify in git. However, something like `echo -e '/*\n!/a/\n/a/*\n!/a/b/\n/a/b/*\n!/a/b/c/' > .gitignore` (ignore everything but a/b/c directory) or `echo -e '*\n!*/\n!*.txt' > .gitignore` (ignore everything but *.txt files) may do what you want. -- vampire0 at 2017-05-04 13:14:00
- !ghhi
- Welcome to #github, a place full of helpful gits. If you have a question, please just go ahead and ask -- and please give us some time to answer. For more info on this channel and #git, see https://gitirc.eu/. Take backups (type !backup to learn how) before taking advice. -- jast at 2017-04-26 10:51:11
- !diff
- "git diff": show unstaged changes. "git diff --cached": show staged changes. "git diff HEAD": show all uncommitted changes. -- jast at 2017-04-26 10:44:21
- !irclog
- Public logs of #git are kept at: https://itvends.com/irc/git/ or see stats for the last 30 days: http://itvends.com/irc/git.html or all logs: http://itvends.com/irc/git-all.html -- Eugene at 2017-04-19 18:46:03
- !welcome
- Welcome to #git, a place full of helpful gits. If you have a question, feel free to just go ahead and ask—somebody should answer shortly. For more info on this channel, see https://gitirc.eu/ - Take backups (type !backup to learn how) before taking advice. -- jast at 2017-04-17 15:07:18
- !triggers
- Please don't spam me! I'm just a poor bot! Here's everything I know: https://gitirc.eu/bot/trigger.php -- that's a list of these nifty keywords like "!bot" that you can use in the channel, in case you were wondering. -- jast at 2017-04-17 15:06:41
- !sparse_checkout
- Sparse checkout can be used to restrict which files/folders are updated with all checkout and status operations. It cannot change the tree the checkout is rooted from. One common use case is locally keeping Git from updating some of the files tracked in your repository. See the "Sparse Checkout" section in man git-read-tree (https://gitirc.eu/git-read-tree.html). -- jast at 2017-04-17 15:06:14
- !refspecs
- Refspecs are used by fetch/push to *spec*ify which *ref*s to transmit where. They have the form "source:destination". They can be prefixed with a "+" to force the update, possibly displacing existing history. More info: https://gitirc.eu/git-fetch.html or http://i.qkme.me/3tke7r.jpg -- jast at 2017-04-17 15:05:50
- !privmsg
- You can get gitinfo keyword expansion (e.g. !doc or this one) sent directly to you by sending a private message to me: /msg gitinfo !doc. This avoids spamming the channel. Also see https://gitirc.eu/bot/trigger.php -- jast at 2017-04-17 15:05:24
- !man
- The git man pages are available online at https://gitirc.eu/git.html. Or were you looking for the "man git-foo" syntax (without the !)? -- jast at 2017-04-17 15:05:02
- !helping
- We have a few guidelines for helping others in #git; please try to follow them. https://gitirc.eu/helping.html -- jast at 2017-04-17 15:04:33
- !help
- What do you need help with? Something with git? Tell us what's going on, and please be specific. For information on how to abuse me (I'm a bot!), see https://gitirc.eu/bot . Please be gentle. -- jast at 2017-04-17 15:04:09
- !gitinfo
- I am an IRC bot which responds to certain keywords to provide helpful(?) information to humans. Please see https://gitirc.eu/bot for more information about how to (ab)use me. -- jast at 2017-04-17 13:57:27
- !karma
- This channel tracks karma based on who has gotten lots of thanks for being helpful. If you want to help someone reach karmic nirvana, please mention their name when thanking them with "thank you", "thankyou", "thanks", "thx", "ty" or "cheers". Try ".karma <nick>" or ".topkarma" to show karma status of a person. -- Vampire0 at 2017-03-17 15:02:00
- !reset--hard
- You can go back to the last commit, or any other commit (effectively getting rid of commits which can cause issues, see !rewrite), using 'git reset --hard' with an optional commit/ref argument. This will irrevocably destroy all uncommitted changes, so please be careful! -- jast at 2017-03-09 12:59:06
- !glhi
- Welcome to #gitolite. This is not as full as #git so there may be some delay in answering your question. Please be patient. If you're unable to stay logged in to IRC until someone answers, please ask on the mailing list; see http://gitolite.com/gitolite/index.html#contactsupport -- sitaram at 2017-03-08 17:21:27
- !glhi
- Welcome to #gitolite. This is not as full as #git so there may be some delay in answering your question. Please be patient. If you're unable to stay logged in to IRC until someone answers, please ask on the mailing list; see http://gitolite.com/gitolite/index.html#contact -- sitaram at 2017-03-08 17:21:06
- !gl-ver
- Gitolite v3 was out April 2012. V2 is now unsupported. PACKAGING: most distros call v3 "gitolite3", as it's very different and isn't auto-upgradable from v2. This is arguably my fault, but it happens (e.g., see sqlite3, gtk3, python3, etc). Please see http://gitolite.com/gitolite/migr/ for more. -- sitaram at 2017-03-08 17:20:24
- !gl-ver
- Gitolite v3 was out April 2012. V2 is now unsupported. PACKAGING: most distros call v3 "gitolite3", as it's very different and isn't auto-upgradable from v2. This is arguably my fault, but it happens (e.g., see sqlite3, gtk3, python3, etc). Please see http://gitolite.com/gitolite/migr.html for more. -- sitaram at 2017-03-08 17:19:50
- !gitolite_ssh
- See http://gitolite.com/gitolite/sts/ for steps to troubleshoot ssh/gitolite. See http://gitolite.com/gitolite/glssh/ for how a single "real" userid can play host to multiple "virtual" users using ssh keys. -- sitaram at 2017-03-08 17:19:09
- !gitolite_emergencies
- Locked out of your gitolite-admin repo? No worries, help is on the way. http://gitolite.com/gitolite/emergencies/ -- sitaram at 2017-03-08 17:17:05
- !gitolite
- Gitolite is a tool to host git repos on a server. It features fine-grained access control, custom hooks, and can be installed without root. Download: https://github.com/sitaramc/gitolite Docs: http://gitolite.com/gitolite/ Quick example: http://gitolite.com/gitolite/overview/#basic-use-case -- sitaram at 2017-03-08 17:16:04
- !gitolite
- Gitolite is a tool to host git repos on a server. It features fine-grained access control, custom hooks, and can be installed without root. Download: https://github.com/sitaramc/gitolite Docs: http://gitolite.com/gitolite/ Quick example: http://gitolite.com/gitolite/overview#basic-use-case -- sitaram at 2017-03-08 17:15:26
- !puzzle
- Hmm.... that doesn't make much sense. Its possible you're not showing us the full puzzle. Please provide more details, preferably including a !transcript including `git status` output so we can help you help yourself. -- Eugene at 2017-03-07 01:49:02
- !rebase-i
- @!interactive_rebase -- jast at 2017-03-06 14:10:27
- !sha1
- Git's usage of SHA1 hashes is resistant to most attack vectors. Additional mitigations and an eventual migration to other hash algorithms are planned. https://plus.google.com/+LinusTorvalds/posts/7tp2gYWQugL. Constructing an actual SHA1 collision is still very expensive, and accidental encounters are less likely than random wolf attacks. Fear their howl. -- Eugene at 2017-02-25 21:43:09
- !sha1
- Git's usage of SHA1 hashes is largely immune to collisions because it includes a file-length header. Other protections and an eventual update to a new hashing algorithm are planned. https://plus.google.com/+LinusTorvalds/posts/7tp2gYWQugL. Constructing an actual SHA1 collision is still very expensive, and accidental encounters are less likely than random wolf attacks. Fear their howl. -- Eugene at 2017-02-25 21:19:35
- !sha1
- Git's usage of SHA1 hashes is largely immune to collisions because it includes a file-length header. Other protections and an eventual update to a new hashing algorithm are planned. http://marc.info/?l=git&m=148787047422954. Constructing an actual SHA1 collision is still very expensive, and accidental encounters are less likely than random wolf attacks. Fear their howl. -- Eugene at 2017-02-24 06:19:43
- !sha1
- Git's usage of SHA1 hashes is largely immune to collisions because it includes a file-length header. Other protections and an eventual update to a new hashing algorithm are planned. http://marc.info/?l=git&m=148787047422954 -- Eugene at 2017-02-24 06:17:49
- !mailing_list
- The mailing list can be reached via git@vger.kernel.org. You don't need to subscribe to the list, you will always be put in cc on reply. Read archives at http://public-inbox.org/git -- vampire0 at 2017-02-23 14:23:19
- !bugtracker
- the developers of git don't use a bug tracker. If you want to report a bug, send an e-mail to the mailing list at git@vger.kernel.org (no subscription required; everyone uses "reply to all" when responding); you can review past discussions at http://public-inbox.org/git -- vampire0 at 2017-02-23 14:23:13
- !rebase_interactive
- @!interactive_rebase -- tobiasvl at 2017-02-17 10:06:26
- !gitslave
- gitslave ( http://gitslave.sf.net ) is useful to add subsidiary git repositories to a git superproject when you control and develop on the subprojects at more or less the same time as the superproject, and furthermore when you typically want to tag, branch, push, pull, etc. all repositories at the same time. -- vampire0 at 2017-02-09 23:12:12
- !gitolite
- Gitolite is a tool to host git repos on a server. It features fine-grained access control, custom hooks, and can be installed without root. Download: https://github.com/sitaramc/gitolite Docs: http://gitolite.com/gitolite/ Quick example: http://gitolite.com/gitolite/overview.html#basic-use-case -- sitaram at 2017-01-11 08:51:45
- !detached
- A detached HEAD (aka "no branch") occurs when your HEAD does not point at a branch. New commits will NOT be added to any branch, and can easily be !lost. This can happen if you a) check out a tag, remote tracking branch, or SHA; or b) if you are in a submodule; or you are in the middle of a c) am or d) rebase that is stuck/conflicted. See !reattach -- canton7 at 2017-01-06 11:01:55
- !concepts
- "Git Concepts Simplified" presents all the important structures in Git, step by step, including selected internal details so it becomes much easier to understand what's going on whenever something's going on. http://gitolite.com/gcs.html -- jast at 2017-01-02 10:17:51
- !dots
- A..B = stuff that happened between A and B (if A and B are related; otherwise refer to "man gitrevisions"), A...B = (a) in history viewers: stuff that isn't in both A and B yet; (b) in "git diff": stuff that happened in B since the two diverged; (c) in "git checkout": the merge base of A and B. "master.." is the same as "master..HEAD" and "..master" is the same as "HEAD..master", and so forth. -- osse at 2016-12-06 20:34:18
- !dots
- https://raw.githubusercontent.com/Osse/git-stuff/master/dots.txt -- osse at 2016-12-06 20:33:23
- !talks
- Some good video talks about Git: [yt] http://goo.gl/z72s (Linus Torvalds: History&Concepts); [yt] http://goo.gl/R9H2q (Scott Chacon: Git basics, live examples); http://vimeo.com/35778382 (Randal Schwartz: Git basics, descriptional); http://vimeo.com/46010208 (Jessica Kerr: Git basics, descriptional) -- ikke at 2016-10-27 06:55:06
- !offon
- Have you tried turning it off and on again? -- vampire0 at 2016-10-14 22:11:52
- !rename
- git does not support explicitly file renaming - the 'git mv' command is shorthand for 'git rm --cached; mv; git add'. All "rename" statistics are generated at runtime when examining history with git-log. See the -M option in the git-log manpage for more info. Also public-inbox.org/git/Pine.LNX.4.58.0504150753440.7211@ppc970.osdl.org and `diff.renames = true` in man git-config -- vampire0 at 2016-09-23 13:26:29
- !bare
- A bare repository is used to push/fetch (useful for running a git server), and contains only the contents of .git/ from a "normal" repo. Read more: http://bare-vs-nonbare.gitrecipes.de/ -- canton7 at 2016-09-20 19:28:03
- !transcript
- Please paste (using https://gist.github.com/ or similar) a transcript ( https://git.io/viMGr ) of your terminal session so we can see exactly what you see -- canton7 at 2016-09-19 13:49:02
- !ghs
- @!sgc -- canton7 at 2016-09-12 10:30:38
- !ghs
- !@sgc -- canton7 at 2016-09-12 10:30:03
- !sparse_checkout
- Sparse checkout can be used to restrict which files/folders are updated with all checkout and status operations. It cannot change the tree the checkout is rooted from. One common use case is locally keeping Git from updating some of the files tracked in your repository. See the "Sparse Checkout" section in man git-read-tree (http://jk.gs/git-read-tree.html). -- jast at 2016-09-09 08:48:57
- !GIT
- Git is not an acronym, nor a proper noun ("git" is equally valid). All-caps is heresy and will be punished with SVN or possibly SCCS. https://git.wiki.kernel.org/index.php/Git_FAQ#Why_the_.27Git.27_name.3F and 48a8c26c625a4d3631c4f614bceb38933e741408 -- canton7 at 2016-09-08 16:34:23
- !threevirtues
- The three great virtues of a programmer, according to Larry Wall: laziness (write code that saves work, document so you don't have to explain over and over), impatience (make software anticipate what you need), hubris (make things nobody could want to criticize) -- jast at 2016-09-06 10:16:38
- !karma
- This channel tracks karma based on who has gotten lots of thanks for being helpful. If you want to help someone reach karmic nirvana, please mention their name when thanking them with "thank you", "thankyou", "thanks", "thx" or "cheers". Try ".karma <nick>" or ".topkarma" to show karma status of a person. -- jast at 2016-08-30 11:55:10
- !karma
- This channel tracks karma based on who has gotten lots of thanks for being helpful. If you want to help someone reach karmic nirvana, please mention their name when thanking them with "thank you", "thankyou", "thanks", "thx" or "cheers". Try ".karma <nick>" or ".topkarma" to show karma status of a person, -- jast at 2016-08-30 11:54:52
- !ops
- @/dev/null (there's currently no information about ops in the bot but it automatically matches !oops which is an alias for !fixup. This placeholder avoids confusion.) -- jast at 2016-08-04 12:35:21
- !paste
- Please use a pastebin for snippets longer than one line. https://gist.github.com and https://vomitb.in both work well. -- jast at 2016-06-29 10:14:16
- !ugt
- UGT (Universal Greeting Time): it is always morning when someone joins a channel, and always late night when they leave. http://www.total-knowledge.com/~ilya/mips/ugt.html -- jast at 2016-06-07 11:24:52
- !pull_vs_rebase
- @!merge_or_rebase -- Eugene at 2016-06-01 17:04:30
- !merge_vs_rebase
- @!merge_or_rebase -- Eugene at 2016-06-01 17:04:06
- !pm
- You can use a private chat with gitinfo triggers to avoid polluting the channel. (eg /msg gitinfo !pm ) -- frogonwheels at 2016-04-29 21:48:29
- !pm
- You can use a private chat with gitinfo triggers to avoid poluting the channel. (eg /msg gitinfo !pm ) -- frogonwheels at 2016-04-29 21:47:49
- !pm
- You can use a private chat with gitinfo for triggers. (eg /msg gitinfo !pm ) -- frogonwheels at 2016-04-29 21:47:26
- !dropbox
- Use git-remote-dropbox instead of placing your repository directly in the "Dropbox folder", or you'll get sync errors(and eventually, a corrupted repo). https://github.com/anishathalye/git-remote-dropbox -- Eugene at 2016-04-25 21:38:48
- !dropbox
- Use git-remote-dropbox to store git repos instead of using the "Dropbox folder", or you'll get sync errors(and a corrupt repo). https://github.com/anishathalye/git-remote-dropbox -- Eugene at 2016-04-25 21:38:03
- !merge_theirs
- Git supports 'merge -s ours', but not 'merge -s theirs'. For a simple workaround, see https://gist.github.com/canton7/1268587 -- vampire0 at 2016-04-19 23:50:58
- !transcript
- Please paste (using https://gist.github.com/ or https://vomitb.in/ ) a transcript ( https://gist.github.com/2415442 ) of your terminal session so we can see exactly what you see -- Eugene at 2016-04-07 23:28:39
- !polite
- @!helping -- qsuscs at 2016-03-04 01:09:58
- !madeitworse
- Made It Worse is a URL lengthener for Github. Example usage: https://torvalds.madeitwor.se/linux -- Eugene at 2016-02-28 18:05:27
- !force_push
- If you need to overwrite the history of a remote git repository (very bad idea, see !rewrite), you can do so with `git push --force-with-lease`. Note the remote server may reject this. See man git-config and search for receive.denyNonFastForwards. Best practice is for upstream servers to denyNonFastForwards. -- ikke at 2016-02-21 15:16:21
- !github
- Note that git != github. Feel free to ask us about Github-specific features (Forks, Pull Requests, Wikis, etc), but there are no guarantees. There is a #github channel, which might help too (again, no guarantees) -- qsuscs at 2016-02-21 15:15:26
- !gitorious
- Gitorious was a free code-hosting website for open-source projects, but it shut down in May 2015. More details at https://about.gitlab.com/2015/03/03/gitlab-acquires-gitorious/ and http://blog.gitorious.org/2015/04/15/gitorious-org-is-dead-long-live-gitorious-org/ -- deltab at 2016-02-19 02:38:11
- !recurse
- see !recursive -- Eugene at 2016-02-03 21:48:25
- !recursion
- see !recurse -- Eugene at 2016-02-03 21:48:18
- !pull_upstream
- To incorporate changes from an "upstream" or forked-from repository: git remote add upstream $URL; git fetch upstream; git merge upstream/$BRANCH. https://help.github.com/articles/syncing-a-fork/ -- Eugene at 2016-02-03 21:46:35
- !fork_sync
- @!pull_upstream -- Eugene at 2016-02-03 21:44:45
- !sync_fork
- @!pull_upstream -- Eugene at 2016-02-03 21:44:43
- !fork_update
- @!pull_upstream -- Eugene at 2016-02-03 21:44:37
- !fork_sync
- blah -- Eugene at 2016-02-03 21:44:28
- !fork_sync
- @!pull_upstream -- Eugene at 2016-02-03 21:44:04
- !upstream_pull
- @!pull_upstream -- Eugene at 2016-02-03 21:41:33
- !unlearning
- @!unlearn -- Eugene at 2016-02-02 00:19:38
- !blag
- @!blog -- Eugene at 2016-01-31 07:20:09
- !answer
- @!blog -- Eugene at 2016-01-31 07:20:01
- !blog
- Blog or Answer posts(like StackOverflow), while helpful and informative, are quite often outdated, give bad advice, or are just plain wrong. Please don't rely solely upon them, or treat them as authoritative. We recommend reading the documentation and consulting multiple sources, such as the expert advice to be found on IRC -- Eugene at 2016-01-31 07:19:47
- !migrate
- https://help.github.com/articles/importing-a-git-repository-using-the-command-line -- j416 at 2016-01-16 09:41:10
- !oops
- @!fixup -- Eugene at 2016-01-14 17:37:41
- !host_gui
- There are several options for self-hosting git repositories with a web GUI: !gitblit !gitlab !rhode_code !gerrit and !gogs. Keep in mind that these all take far more work than a (non-GUI) !gitolite install. An overview of nearly all GUIs is available at: https://git.wiki.kernel.org/index.php/Interfaces,_frontends,_and_tools -- qsuscs at 2016-01-07 21:31:07
- !non_bare
- @!bare -- Eugene at 2015-12-08 17:54:33
- !cache
- @!index -- Eugene at 2015-11-19 02:57:12
- !staging
- @!index -- Eugene at 2015-11-19 02:55:38
- !stage
- @!index -- Eugene at 2015-11-19 02:55:35
- !bare
- A bare repository is used to push/fetch(useful for running a git server), and contains only the contents of .git/ from a "normal" repo. Read more: http://bare-vs-nonbare.gitrecipes.de/ -- Eugene at 2015-11-14 02:41:09
- !bare
- A bare repository is used to push/pull(eg, on servers), and contains only the contents of .git/ from a "normal" repo. Read more: http://bare-vs-nonbare.gitrecipes.de/ -- Eugene at 2015-11-14 02:39:06
- !bear
- Bear repos are very dangerous. Approach with caution! https://youtu.be/DvduCPXO_FE -- Eugene at 2015-11-14 02:32:36
- !bare
- A bare repository is used for pushing-to, and contains only git's repodata, which is kept in .git/ for working repos. More reading: .trigger_edit A bare repository is used for pushing-to, and contains only the contents of .git/ from a "normal" repo. Read more: http://bare-vs-nonbare.gitrecipes.de/ -- Eugene at 2015-11-14 02:30:57
- !paste
- Please use a pastebin for snippers longer than one line. https://gist.github.com and https://vomitb.in both work well. -- Eugene at 2015-11-14 02:19:21
- !eol
- The option/attribute to use when you need to care about different line-endings in your file: https://help.github.com/articles/dealing-with-line-endings/ -- lb at 2015-11-06 14:45:25
- !subtree
- The subtree merge method is great for incorporating a subsidiary git repo into your current one with "unified" history. Read http://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_subtree_merge for more info, see also !git-subtree and !git-stitch-repo. -- jast at 2015-10-30 12:37:56
- !semver
- The Semantic Versioning standard is widely used for version numbering. You may find it useful when creating git tags: http://semver.org/ -- Eugene at 2015-10-24 00:27:12
- !annex
- git-annex, git-media, and Git LFS are some solutions to the !binary problem. They work by keeping the blobs outside of the repo, storing a reference to the blob in the repo instead. http://git-annex.branchable.com https://github.com/alebedev/git-media http://git.io/git-lfs -- Eugene at 2015-10-22 00:43:10
- !filter_subdirectory
- You can use filter-branch's subdirectory filter to split a directory from an existing repository into a new repository, keeping all history. https://help.github.com/articles/splitting-a-subfolder-out-into-a-new-repository/ -- jast at 2015-10-21 10:49:06
- !git-spindle
- https://github.com/seveas/git-spindle is a handy tool to use the features of GitHub (and GH Enterprise), GitLab, BitBucket and possibly more from the command line. -- qsuscs at 2015-10-20 18:48:10
- !GIT
- Git is not an acronym, nor a proper noun("git" is equally valid). All-caps is heresy and will be punished with SVN or possibly SCCS. https://git.wiki.kernel.org/index.php/Git_FAQ#Why_the_.27Git.27_name.3F -- Eugene at 2015-10-15 20:43:59
- !GIT
- Git is not an acronym, nor a proper noun(use "git" in the middle of a sentence). All-caps is heresy and will be punished with SVN or possibly SCCS. https://git.wiki.kernel.org/index.php/Git_FAQ#Why_the_.27Git.27_name.3F -- Eugene at 2015-10-15 20:43:23
- !gerrit
- Gerrit is a web-based code review system, built by Google. https://www.gerritcodereview.com/ -- Eugene at 2015-10-14 15:54:23
- !repo
- Repo is a tool produced by Google for the AOSP project(and others) which wraps git and provides its own set of commands. While it is possible to use git with repositories that are managed by repo, it is not always easy. https://source.android.com/source/using-repo.html -- Eugene at 2015-10-14 15:50:31
- !dropbox
- Using Git's native access with Dropbox will eventually corrupt your repository. Read !dropbox_why for details. Either use a free hosting service such as Bitbucket or GitHub, or use https://github.com/anishathalye/git-remote-dropbox. -- ojacobson at 2015-09-22 15:48:04
- !sausagemaking
- @!sausage_making -- qsuscs at 2015-09-22 02:08:02
- !dag
- @!cs -- Eugene at 2015-09-11 16:00:32
- !DAG
- @!cs -- Eugene at 2015-09-11 16:00:28
- !origin
- 'origin' is the default name for a remote assigned by git clone. It is in no way special (similar to !master) and can be edited as you like through git remote rename -- qsuscs at 2015-09-05 18:00:05
- !checkout
- checkout does two different things! (1) no file/path argument: 'git checkout <ref>' = switches to a branch or commit. Uncommitted changes are carried over; if they don't apply cleanly the whole operation rolls back. (2) 'git checkout [<commit>] -- <path>' = overwrites the given files/paths with different versions, from <commit> or (if not given) from the index. -- jast at 2015-09-02 14:09:14
- !checkout
- checkout does two different things! (1) no file/path argument: 'git checkout <ref>' = switches to a branch or commit, possibly detaching HEAD (see !detached). Uncommitted changes are carried over, if they don't apply cleanly the whole operation rolls back. (2) 'git checkout [<commit>] -- <path>' = overwrites the given files/paths with different versions, from <commit> or (if not given) from the index. Also updates the index accordingly. -- jast at 2015-09-02 14:08:19
- !reset
- reset does two things! (1) without file/path argument: 'git reset [flags] [<commit>]' = make the current branch point to <commit> (default: HEAD). --soft = don't do anything else. --mixed (default) = overwrite the index to match. --hard = overwrite the working files to match. (2) 'git reset [<commit>] -- <path>' = overwrite the index entries for <path> with the content from <commit> (default: HEAD) -- jast at 2015-09-02 13:52:30
- !assume_unchanged
- git update-index --assume-unchanged is sometimes suggested for keeping yourself from committing changes to a file, but it's actually a promise to Git that the file is identical to the committed version, to reduce unnecessary disk reads. Not only will Git feel free to discard the flag, it will also happily overwrite your changes whenever a checkout/merge/rebase/... updates it. -- jast at 2015-09-01 09:15:33
- !assume_unchanged
- git update-index --assume-unchanged is sometimes suggested for keeping yourself from committing changes to a file, but it's actually meant to tell Git that there are definitely no changes at all in the file, to reduce unnecessary disk access. Git will feel free to discard the flag or overwrite the file at any time it feels like it. -- jast at 2015-09-01 09:11:37
- !etckeeper
- etckeeper is a collection of tools to let /etc be stored in a git, mercurial, darcs, or bzr repository. It hooks into various package managers. http://etckeeper.branchable.com -- canton7 at 2015-08-31 19:05:31
- !etckeeper
- etckeeper is a collection of tools to let /etc be stored in a git, mercurial, darcs, or bzr repository. It hooks into various package managers. http://http://etckeeper.branchable.com -- canton7 at 2015-08-31 19:05:14
- !BFG
- @!bfg -- Eugene at 2015-08-27 19:58:27
- !doesnt_work
- @!doesntwork -- canton7 at 2015-08-06 15:53:37
- !default
- @!master_branch -- Eugene at 2015-07-24 00:00:11
- !configs
- @!configfiles -- Eugene at 2015-07-20 17:13:29
- !eekamerge
- @!eekaconflict -- canton7 at 2015-07-17 18:01:42
- !ghs
- @sgc -- canton7 at 2015-07-16 10:54:16
- !gitext
- Git Extensions is a GUI for git on Windows. It includes Explorer integration and a Visual Studio plugin. http://gitextensions.github.io/ -- jast at 2015-07-09 09:27:47
- !sgc
- For bug reports, feature requests, suggestions for improvement, or specific problems with an individual repo (or gist, etc.), please contact support via support@github.com or https://github.com/support - support tries to answer all questions within 24 hours, including weekends and holidays. -- Seveas at 2015-07-07 17:47:28
- !ignore_untracked
- @!ignore_tracked -- qsuscs at 2015-07-02 21:57:40
- !atomic
- Use this to atomically switch deployments: http://rcrowley.org/2010/01/06/things-unix-can-do-atomically.html -- ikke at 2015-06-30 18:26:36
- !technically
- https://xkcd.com/1475/ -- qsuscs at 2015-06-29 17:58:33
- !lol
- A nifty view of branches, tags, and other refs: git log --oneline --graph --decorate --all -- canton7 at 2015-06-11 08:59:59
- !at
- @ is a shortcut for !HEAD -- osse at 2015-06-10 13:05:43
- !at
- @ is a shortcut for !HEAD -- qsuscs at 2015-06-10 13:05:43
- !lol
- A nifty view of branches, tags, and other refs: git config --global alias.lol "log --oneline --graph --decorate --all" -- qsuscs at 2015-06-09 14:28:29
- !visualize
- You can visualize the whole repo graph with gitk (GUI, `gitk --all`), !lol (plain CLI, `git log --oneline --graph --decorate --all`) or tig (ncurses, http://jonas.nitro.dk/tig/) -- qsuscs at 2015-06-09 14:27:49
- !persistent_changes
- Probably some filter is causing the files to keep being modified. See http://softec.lu/site/DevelopersCorner/GitSmudgeCleanCorrupted for details. -- ikke at 2015-06-03 19:09:22
- !persistent_changes
- http://softec.lu/site/DevelopersCorner/GitSmudgeCleanCorrupted -- ikke at 2015-06-03 19:07:59
- !single_malt_scotch
- Ohh, yeah, now we’re get*hick*ting somewhe*hick*re. -- qsuscs at 2015-06-02 22:26:40
- !rewrite
- Rewriting public history is not recommended. Everyone who has pulled the old history will have to do work (and you'll have to tell them to), so it's infinitely better to just move on. If you must, you can use `git push --force-with-lease <remote> <branch>` to force (and the remote may reject that, anyway). See http://goo.gl/waqum -- jast at 2015-05-20 07:44:15
- !rtb
- @!remote_tracking_branch -- qsuscs at 2015-05-16 10:24:27
- !rtb
- Remote-tracking branches (branches which start with e.g. 'origin/', listed by 'git branch -r') are read-only mirrors of the corresponding branches in another repository. They're updated by 'git fetch'. You can't edit them directly (trying to check them out results in a !detached HEAD), but you can create a new local branch based on a remote-tracking branch using e.g. 'git checkout -b -- qsuscs at 2015-05-16 10:24:03
- !LearnGitBranching
- https://pcottle.github.io/learnGitBranching/ -- qsuscs at 2015-05-07 20:21:58
- !gh-zipball
- @!gh-tarball -- qsuscs at 2015-05-05 17:58:52
- !isgitbetter
- We think so, but if you don't, please go away and use $YourFavoriteSystem instead -- canton7 at 2015-05-05 07:30:46
- !svn2git
- For a one-time conversion of SVN to git, svn2git should be used instead of git-svn. There are many tools with this name. Probably the best is the KDE one at https://github.com/svn-all-fast-export/svn2git. To analyze the SVN repo history upfront for building up proper rules for svn2git, you might use svneverever from here: http://blog.hartwork.org/?p=763 -- qsuscs at 2015-04-30 08:22:57
- !mailing_list
- The mailing list can be reached via git@vger.kernel.org. You don't need to subscribe to the list, you will always be put in cc on reply. Read archives at http://j.mp/gitlist -- canton7 at 2015-04-20 16:21:17
- !rewrite
- Rewriting public history is not recommended. Everyone who has pulled the old history have to do work (and you'll have to tell them to), so it's infinitely better to just move on. If you must, you can use `git push --force-with-lease <remote> <branch>` to force (and the remote may reject that, anyway). See http://goo.gl/waqum -- ikke at 2015-04-15 13:09:35
- !gitlink
- git:PROVIDER:REPO:REF:PATH (last two optional, REF defaults to HEAD if omitted) -- qsuscs at 2015-04-13 21:12:05
- !subtree
- The subtree merge method is great for incorporating a subsidiary git repo into your current one with "unified" history. Read http://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_subtree_merge for more info, see also !git-subtree and !git-stich-repo. -- freeroute at 2015-04-12 23:25:14
- !subtree
- http://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_subtree_merge -- freeroute at 2015-04-12 23:21:56
- !rhode_code
- Hosting Web-GUI with Git, Mercurial and Subversion support: https://rhodecode.com/ -- qsuscs at 2015-04-09 14:52:04
- !host_guis
- @!host_gui -- qsuscs at 2015-04-09 14:46:50
- !annex
- git LFS, git-annex and git-media are some solutions to the !binary problem. They work by keeping the blobs outside of the repo, storing a reference to the blob in the repo instead. See http://git.io/git-lfs, http://git-annex.branchable.com and https://github.com/alebedev/git-media -- canton7 at 2015-04-09 07:22:05
- !rmrf
- @!startover -- qsuscs at 2015-04-02 15:01:14
- !startover
- There’s usually no need to start over / rm -rf everything and reclone or so. Most situations can be fixed by other means. -- qsuscs at 2015-04-02 15:01:04
- !yolo
- git config alias.yolo '!git commit -fA -m "Yolo swag!"; git push -f' -- osse at 2015-04-02 12:59:59
- !submodules_rm
- To delete a submodule, do this in the superproject: Edit/delete .gitmodules to remove the submodule, and `git add .gitmodules`. Then `rm -rf submodulepath; git rm -f --cached submodulepath; git commit -am "Removed submodules!"` Inspect .git/config for "submodule" entries to remove. Inspect .git/modules for caches to remove. Possible alternatives to submodules: "!gitslave" or "!subtree" -- jast at 2015-03-23 15:42:40
- !not_intended
- @!UGFWIINI -- qsuscs at 2015-03-22 18:48:04
- !understand
- You might wanna see http://pics.nase-bohren.de/version-control.jpg and/or http://devopsreactions.tumblr.com/post/104064772852/understanding-git -- qsuscs at 2015-03-19 14:09:11
- !gogs
- Gogs is a self-hosted platform similar to !gitlab, written in Go, aiming to be easier to deploy. http://gogs.io/ -- jast at 2015-03-18 09:18:37
- !host_gui
- There are several options for self-hosting git repositories with a web GUI: !gitblit !gitlab !gitorious !rhode_code !gerrit and !gogs. Keep in mind that these all take far more work than a (non-GUI) !gitolite install. An overview of nearly all GUIs is available at: https://git.wiki.kernel.org/index.php/Interfaces,_frontends,_and_tools -- canton7 at 2015-03-18 09:14:44
- !host_gui
- There are several options for self-hosting git repositories with a web GUI: !gitblit !gitlab !gitorious !rhode_code and !gerrit !gogs. Keep in mind that these all take far more work than a (non-GUI) !gitolite install. An overview of nearly all GUIs is available at: https://git.wiki.kernel.org/index.php/Interfaces,_frontends,_and_tools -- canton7 at 2015-03-17 12:06:49
- !gogs
- Gogs is a self-hosted platform similar to !gitlab, written in Go -- canton7 at 2015-03-17 12:06:26
- !sovietgit
- @!soviet_git -- qsuscs at 2015-03-16 21:50:40
- !soviet_git
- In Soviet Git, commits are not on branches, branches point to a commit. -- qsuscs at 2015-03-12 20:36:43
- !signoff
- A sign-off is a line in the commit message saying 'Signed-off-by: Your Name <your@email>'. It can be added using 'git commit -s'. A few open source projects require it for legal reasons. See http://stackoverflow.com/a/1962112/1086121 for a good explanation -- canton7 at 2015-03-10 11:25:27
- !private
- Want to get free hosting for non-public projects (you can control who gets access)? Some options: Bitbucket (https://bitbucket.org/ - 5 members max), Gitlab (https://gitlab.com/ - practically no limits) -- jast at 2015-03-07 17:55:51
- !gitlab
- Gitlab is Git hosting similar to Github, but for your own server or on gitlab.com, giving you unlimited free private repositories: http://gitlab.com/ -- jast at 2015-03-07 17:51:43
- !gitorious
- Gitorious is a free code-hosting website for open-source projects. The software powering it is also available for you to self-host repos. https://gitorious.org/ WARNING: gitorious will shut down May 2015. If you have any repos you want to keep, move them elsewhere! More details at https://about.gitlab.com/2015/03/03/gitlab-acquires-gitorious/ -- jast at 2015-03-06 11:07:56
- !gitorious
- Gitorious is a free code-hosting website for open-source projects. The software powering it is also available for you to self-host repos. https://gitorious.org/ WARNING: gitorious will shut down May 2015. If you have any repos you want to keep, move them elsewhere! -- jast at 2015-03-06 11:07:25
- !dotfiles
- There are various issues associated with keeping dot-files in git (permissions, avoiding having a .git in ~/ or /). One attempt to manage this is http://dotfiles.github.com/ and there is a wiki about it here: http://vcs-home.branchable.com -- madduck at 2015-03-06 10:51:02
- !dotfiles
- There are various issues associated with keeping dot-files in git (permissions, avoiding having a .git in ~/ or /). -- madduck at 2015-03-06 10:50:40
- !empty
- @!directory -- qsuscs at 2015-02-18 12:57:16
- !gitinfo
- I am an IRC bot which responds to certain keywords to provide helpful(?) information to humans. Please see http://jk.gs/git/bot for more information about how to (ab)use me. -- canton7 at 2015-02-18 10:07:06
- !submodules_rm
- You want to delete submodules? Excellent choice! All commands are in the superproject. Edit/delete .gitmodules to remove the submodule, and `git add .submodule`. Then `rm -rf submodulepath; git rm -f --cached submodulepath; git commit -am "Removed submodules!"` Inspect .git/config for "submodule" entries to remove. Inspect .git/modules for caches to remove "!gitslave" or "!subtree" (type them!) might be alternatives -- moritz at 2015-02-17 19:53:28
- !third
- @!3rdparty -- ikke at 2015-02-10 11:26:48
- !detached_head
- @!detached -- ikke at 2015-02-10 06:51:16
- !contributing
- Want to improve git? Everything you need to know is in http://git.io/SubmittingPatches. See !list for more on the mailing list -- canton7 at 2015-01-30 20:47:15
- !transcript
- Please paste (using https://gist.github.com/ or similar) a transcript ( https://gist.github.com/2415442 ) of your terminal session. -- j416 at 2015-01-27 08:07:27
- !fix_multiuser
- Got multiple system accounts writing to the same bare git repo? Use !gitolite OR: 1) Create common system group 2) chgrp recursively 3) find -type d -exec chmod 2775 '{}' +; find -type f -exec chmod 664 '{}' + 4) git config core.sharedRepository true -- jast at 2015-01-23 11:15:37
- !fix_multiuser
- Got multiple system accounts writing to the same bare git repo? Use !gitolite OR: 1) Create common system group 2) chgrp recursively 3) find -type d -exec chmod 2775 '{}'; find -type f -exec chmod 664 '{}' 4) git config core.sharedRepository true -- jast at 2015-01-23 11:14:32
- !fix_multiuser
- Got multiple system accounts writing to the same bare git repo? 1) Create common system group 2) chgrp recursively 3) find -type d -exec chmod 2775 '{}'; find -type f -exec chmod 664 '{}' 4) git config core.sharedRepository true -- jast at 2015-01-23 11:12:57
- !third
- @!3rdparty -- Eugene at 2015-01-20 17:14:08
- !3rdparty
- That tool is not part of git-core. I don’t know, but if you’re patient, someone else might answer your question. -- qsuscs at 2015-01-20 17:11:55
- !rebase_local_remote
- When you 'git checkout branch; git rebase master', git will sit on top of master and apply successive patches from branch. If patch #2 conflicts, then LOCAL points to the result of patch #1 having been applied, and REMOTE points to patch #2 -- canton7 at 2015-01-09 09:44:25
- !annex
- git-annex and git-media are two solutions to the !binary problem. They work by keeping the blobs outside of the repo, storing a reference to the blob in the repo instead. See http://git-annex.branchable.com/ and https://github.com/alebedev/git-media -- Eugene at 2015-01-08 17:41:41
- !official
- Some official resources for git. Homepage: http://git-scm.com/ | Source repo: https://www.kernel.org/pub/scm/git/git.git/ (Mirrrored: https://github.com/git/git/) | IRC channel: You're in it. | Mailing list: http://vger.kernel.org/vger-lists.html#git (git@vger.kernel.org, subscription optional) -- ikke at 2015-01-06 18:36:43
- !repro
- @!transcript -- offby1 at 2014-12-29 21:56:03
- !transcript
- Please paste (using https://gist.github.com/ or similar) a transcript ( https://gist.github.com/2415442 ) of your terminal session -- or, even better for complex issues, design a minimal case in which your problem can be reproduced, and share it with us. This will raise the odds of getting your problem fixed from about 30% to about 90%. -- offby1 at 2014-12-29 21:50:12
- !alias
- You can set up alias to be used by git, see: http://git-scm.com/book/en/v2/Git-Basics-Git-Aliases -- iveqy at 2014-12-29 15:39:52
- !gitosis
- gitosis is no longer maintained and supported by the author; we usually recommend gitolite instead which has much better documentation and more features: http://github.com/sitaramc/gitolite -- there's even a migration guide for gitosis users... if you're stuck with gitosis for some reason we'll try to help, but no promises! -- jast at 2014-12-17 16:39:45
- !host_gui
- There are several options for self-hosting git repositories with a web GUI: !gitblit !gitlab !gitorious !rhode_code and !gerrit. Keep in mind that these all take far more work than a (non-GUI) !gitolite install. An overview of nearly all GUIs is available at: https://git.wiki.kernel.org/index.php/Interfaces,_frontends,_and_tools -- lb1a at 2014-12-11 12:03:09
- !subgit
- SubGit is a two-way git<->svn bridge. It provides a (self-)hosted alternative to git-svn, with some advantages. See http://subgit.com/ -- canton7 at 2014-12-02 13:19:42
- !bugtracker
- the developers of git don't use a bug tracker. If you want to report a bug, send an e-mail to the mailing list at git@vger.kernel.org (no subscription required; everyone uses "reply to all" when responding); you can review past discussions at http://j.mp/gitlist -- jast at 2014-11-21 15:42:23
- !notsvn
- @!unlearn -- canton7 at 2014-11-17 17:19:24
- !color
- Bring some color to your life! git config --global color.ui auto -- jast at 2014-11-13 09:17:06
- !empty_dir
- @!directory -- Eugene at 2014-11-13 01:37:10
- !bfg
- A tool designed to remove large files, or passwords from history: https://rtyley.github.io/bfg-repo-cleaner/ (!rewrite applies) -- ikke at 2014-11-02 20:51:35
- !filter_sensitive
- You can use filter-branch to remove sensitive data from a repository's history. https://help.github.com/articles/remove-sensitive-data/ -- ikke at 2014-10-28 20:38:13
- !assume_unchanged
- git update-index --assume-unchanged is a promise to git you won't change a file. If you do change that file, you will make git cry. -- ikke at 2014-10-21 11:29:50
- !filter_branch_args
- You almost always want to use `--tag-name-filter cat -- --all` at the end of your `git filter-branch` command line to cause all normal refs to be rewritten. -- kdlv at 2014-10-20 20:24:23
- !master
- @!master_branch -- qsuscs at 2014-10-11 17:15:47
- !floated
- @!float -- Vampire0 at 2014-10-10 16:02:29
- !master_branch
- 'master' is the default name for the first branch created by git, and it is in no way special. You can just delete it, and use more meaningful names such as 'dev' 'stable' 'unstable' 'bug/001' etc. If this is a bare repo, you will want to change the default branch(`git symbolic-ref HEAD refs/heads/somebranch`) first. -- ikke at 2014-10-06 19:05:58
- !merge_theirs
- Git supports 'merge - ours', but not 'merge -s theirs'. For a simple workaround, see https://gist.github.com/canton7/1268587 -- canton7 at 2014-10-06 07:29:55
- !line-endings
- @!crlf -- jast at 2014-09-22 14:38:25
- !local_branch_from_remote
- The following commands are all equivalent, assuming <branch> doesn't yet exist: 'git checkout -b <branch> <remote>/<branch>', 'git checkout -t <remote>/<branch>', 'git checkout <branch>'. The latter invokes some magic. -- canton7 at 2014-09-17 10:39:26
- !local_branch_from_remote
- The following commands are all equivalent, assuming <branch> doesn't yet exist: 'git checkout -b <branch> <remote>/<branch>', 'git checkout -t <remote>/<branch>', 'git checkout <branch>'. The last invokes some magic. -- j416 at 2014-09-17 10:34:59
- !backup
- Worried about your data while trying stuff out in your repo? The repository in its entirety lives inside the .git directory in the root of your work tree so to backup everything `cp -a path/to/workdir path/to/backup` or equivalent will suffice as long as the repo is not modified during backup. See also http://sethrobertson.github.com/GitBestPractices/#backups -- j416 at 2014-09-17 09:14:40
- !quiet
- We require users to have completed a NickServ registration, or to ask the bot for a +v(via the .voice command). This helps to combat most random spamming -- Eugene at 2014-09-15 20:27:26
- !reasons
- @!why -- Eugene at 2014-09-08 20:54:35
- !pastie
- @!repro -- canton7 at 2014-09-02 12:44:56
- !gl-ver
- Gitolite v3 was out April 2012. V2 is now unsupported. PACKAGING: most distros call v3 "gitolite3", as it's very different and isn't auto-upgradable from v2. This is arguably my fault, but it happens (e.g., see sqlite3, gtk3, python3, etc). Please see http://gitolite.com/gitolite/migr.html for more. -- sitaram at 2014-09-01 03:50:02
- !gl-ver
- Gitolite v3 was out April 2012. V2 is now unsupported. PACKAGING: most distros call v3 "gitolite3", as it's very different and isn't auto-upgradable from v2. Please see http://gitolite.com/gitolite/migr.html. This is arguably my fault, but it happens (e.g., see sqlite3, gtk3, python3, etc) -- sitaram at 2014-09-01 03:49:57
- !gl-ver
- Gitolite v3 was out April 2012. V2 is now unsupported. PACKAGING: most distros call v3 "gitolite3", as it's very different and isn't auto-upgradable from v2. This is arguably my fault, but it happens (e.g., see sqlite3, gtk3, python3, etc). Please see http://gitolite.com/gitolite/migr.html for more. -- sitaram at 2014-09-01 03:49:52
- !gl-ver
- Gitolite v3 was out April 2012. V2 is now unsupported. PACKAGING: most distros call v3 "gitolite3", as it's very different and isn't auto-upgradable from v2. Please see http://gitolite.com/gitolite/migr.html. This is arguably my fault, but it happens (e.g., see sqlite3, gtk3, python3, etc) -- sitaram at 2014-09-01 03:49:24
- !gl-ver
- Gitolite v3 was out April 2012. V2 is now unsupported. PACKAGING: most distros call v3 "gitolite3", as it's very different and isn't auto-upgradable from v2. Please uninstall 'gitolite', install 'gitolite3', then see http://gitolite.com/gitolite/migr.html. This is arguably my fault, but it happens (e.g., see sqlite3, gtk3, python3, etc) -- sitaram at 2014-09-01 03:48:03
- !gl-ver
- Gitolite v3 was out April 2012. V2 is now unsupported. PACKAGING: most distros call v3 "gitolite3", as it's very different and isn't auto-upgradable from v2. Please uninstall 'gitolite', install 'gitolite3', then see http://gitolite.com/gitolite/migr.html -- sitaram at 2014-09-01 03:47:05
- !gl-ver
- Gitolite v3 was released April 2012. V2 is not supported anymore, unless you find a serious security issue. PACKAGING: most distros package v3 as "gitolite3", since it is significantly different from v2 and it is not possible to auto-upgrade. You may need to uninstall 'gitolite' and install 'gitolite3', then see migr.html in the gitolite docs. (This is arguably my fault but it happens; like sqlite3, gtk3, python3, glade3...! -- sitaram at 2014-09-01 03:43:30
- !gl-ver
- Gitolite v3 was released April 2012. V2 is not supported anymore, unless you find a serious security issue. PACKAGING: most distros package v3 as "gitolite3", since it is significantly different from v2 and it is not possible to auto-upgrade. You may need to uninstall 'gitolite' and install 'gitolite3'. (This is arguably my fault but it happens; like sqlite3, gtk3, python3, glade3...!) -- sitaram at 2014-09-01 03:42:38
- !gl-ver
- Gitolite v3 was released April 2012. V2 is not supported anymore, unless you find a serious security issue. PACKAGING: most distros package v3 as "gitolite3", since it is significantly different from v2 and it is not possible to auto-upgrade. You may need to uninstall 'gitolite' and install 'gitolite3'. This is arguably my fault but it's not unknown: sqlite3, gtk3, python3, glade3...! -- sitaram at 2014-08-31 05:58:36
- !gl-ver
- Gitolite v3 was released April 2012. V2 is not supported anymore, unless you find a serious security issue. PACKAGING: most distros package v3 as "gitolite3", since it is significantly different from v2 and it is not possible to auto-upgrade. You may need to uninstall 'gitolite' and install 'gitolite3'. This is arguably my fault but there's precedent: sqlite3, gtk3, python3, glade3...! -- sitaram at 2014-08-31 05:58:03
- !gl-ver
- Gitolite v3 was released April 2012. V2 is not supported anymore, unless you find a serious security issue. PACKAGING: most distros package v3 as "gitolite3", since it is significantly different from v2 and it is not possible to auto-upgrade. You may need to uninstall 'gitolite' and install 'gitolite3'. You could argue this (version confusion) is my fault, and if so, I apologise (while pointing out that fedora at least has p -- sitaram at 2014-08-31 05:56:54
- !gl-ver
- Gitolite v3 was released April 2012. V2 is not supported anymore, unless you find a serious security issue. PACKAGING: most distros package v3 as "gitolite3", since it is significantly different from v2 and it is not possible to auto-upgrade. So you may need to uninstall 'gitolite' and install 'gitolite3'. You could argue this (version confusion) is my fault, and if so, I apologise (while pointing out that fedora at least ha -- sitaram at 2014-08-31 05:56:23
- !gl-ver
- Gitolite v3 was released April 2012. V2 is not supported anymore, unless you find a serious security issue. PACKAGING: most distros package v3 as "gitolite3", since it is significantly different from v2 and it is not possible to auto-upgrade. So you may need to uninstall 'gitolite' and install 'gitolite3'. You could argue this (version confusion) is my fault, and if so, I apologise (while pointing out that packages like 'sql -- sitaram at 2014-08-31 05:49:33
- !gl-ver
- Gitolite v3 was released April 2012. V2 is not supported anymore, unless you find a serious security issue. PACKAGING: most distros package v3 as "gitolite3", since it is significantly different from v2 and it is not possible to auto-upgrade. So you may need to uninstall 'gitolite' and install 'gitolite3'. You could argue that's my fault, and if so, I apologise (while pointing out that packages like 'sqlite3' also exist). -- sitaram at 2014-08-31 05:48:44
- !gl-ver
- Gitolite v3 was released April 2012. V2 is not supported anymore, unless you find a serious security issue. PACKAGING: most distros package v3 as "gitolite3", since it is significantly different from v2 and it is not possible to auto-upgrade. You could argue that's my fault, and if so, I apologise (while pointing out that packages like 'sqlite3' also exist). -- sitaram at 2014-08-31 05:47:49
- !github_ignore
- @!gitignore_template -- Eugene at 2014-08-30 22:43:38
- !man
- The git man pages are available online at http://jk.gs/git.html. Or were you looking for the "man git-foo" syntax(without the !) ? -- Eugene at 2014-08-21 14:55:34
- !host_gui
- There are several options for self-hosting git repositories with a web GUI: !gitblit !gitlab !gitorious !rhode_code and !gerrit. Keep in mind that these all take far more work than a (non-GUI) !gitolite install. -- Eugene at 2014-08-19 23:11:07
- !host_gui
- There are several options for self-managing hosted git repositories: !gitblit !gitlab !gitorious !rhode_code and !gerrit. Keep in mind that these all take far more work than a (non-GUI) !gitolite install. -- Eugene at 2014-08-19 23:10:45
- !gfm
- GFM is short for GitHub Flavored Markdown, see https://help.github.com/articles/github-flavored-markdown and https://help.github.com/articles/writing-on-github -- Nevik at 2014-08-06 18:50:36
- !break_gfm
- So you want to break some auto-magic that GitHub does (!gfm) to your comments (like @user, #issue, user/repo, :emoji:)? You can use a zero-width space to do that: insert ​ somewhere into the sequence. See also http://en.wikipedia.org/wiki/Zero-width_space -- Nevik at 2014-08-06 18:50:27
- !gfm
- GFM is short for Github Flavored Markdown, see https://help.github.com/articles/github-flavored-markdown and https://help.github.com/articles/writing-on-github -- Nevik at 2014-08-06 18:49:34
- !gitk
- A tool to view commit history and the diffs they introduced, branching and merging, etc. It is shipped with git, run `gitk` from inside a repository. -- qsuscs at 2014-07-30 14:06:10
- !notsvn
- This is not Subversion. Forget your old habits, the only thing it’ll get you is pain and other people laughing at you. -- qsuscs at 2014-07-28 22:11:58
- !coffee
- Drink Earl Grey Tea. It’s better. -- qsuscs at 2014-07-25 18:09:15
- !wine
- @!beer -- Eugene at 2014-07-24 04:20:13
- !shallow
- A shallow clone will clone a repository to a certain "depth", which sounds like a good idea for only obtaining the latest revision of a given repo. However, they often don't work as-advertised(breaking on fetch and push operations). Instead you should consider git-archive's --remote feature, or perhaps you're really encountering a !binary problem -- Eugene at 2014-07-24 03:06:05
- !rewriting_public_history
- @!rewrite -- Vampire0 at 2014-07-22 10:09:55
- !rewriting
- @!rewrite -- Vampire0 at 2014-07-22 10:09:42
- !dangling
- Dangling objects represent things added to git which are no longer needed based on the git commands you typed in. This can be normal workflow (rebase, reset, add, etc) or errors you made. Typing "!dangling_commit" "!dangling_blob" and "!dangling_tree" into a query to me will get you more information about each type. -- qsuscs at 2014-07-18 17:09:10
- !svn2git
- For a one-time conversion of SVN to git, svn2git should be used instead of git-svn. There are many tools with this name. Probably the best is the KDE one at https://gitorious.org/svn2git. To analyze the SVN repo history upfront for building up proper rules for svn2git, you might use svneverever from here: http://blog.hartwork.org/?p=763 -- Vampire0 at 2014-07-18 12:31:33
- !svn2git
- There are many tools with this name. Probably the best is the KDE one at https://gitorious.org/svn2git. To analyze the SVN repo history upfront for building up proper rules for svn2git, you might use svneverever from here: http://blog.hartwork.org/?p=763 -- Vampire0 at 2014-07-18 12:30:03
- !visualise
- @!visualize -- xender at 2014-07-17 09:33:06
- !diff3
- If you use to resolve merge conflicts by editor using <<< === >>> markers, you may want to set diff3 option to show merge base using additional ||| marker (git config --global merge.conflictstyle diff3). See http://psung.blogspot.com/2011/02/reducing-merge-headaches-git-meets.html -- xender at 2014-07-16 18:23:52
- !yolo
- git config alias.yolo '!git commit -A -m "Yolo swag!"; git push -f' -- canton7 at 2014-07-16 09:38:37
- !karma
- This channel tracks karma based on who has gotten lots of thanks for being helpful. If you want to help someone reach karmic nirvana, please mention their name when thanking them with "thank you", "thankyou", "thanks", "thx" or "cheers". Try ".karma <nick>" or ".topkarma" to show karma status of a person, but please do it via private message to avoid mass highlighting people. -- vampire0 at 2014-07-15 11:32:21
- !dots
- A..B = stuff that happened between A and B (if A and B are related; otherwise refer to "man gitrevisions"), A...B = (a) in history viewers: stuff that isn't in both A and B yet; (b) in "git diff": stuff that happened in B since the two diverged; (c) in "git checkout": the merge base of A and B. "master.." is the same as "master..HEAD" and "..master" is the same as "HEAD..master", and so forth. -- vampire0 at 2014-07-15 10:44:21
- !dots
- A..B = stuff that happened between A and B (if A and B are related; otherwise refer to the more technical definition in "man gitrevisions"), A...B = (a) in history viewers: stuff that isn't in both A and B yet; (b) in "git diff": stuff that happened in B since the two diverged. "master.." is the same as "master..HEAD" and "..master" is the same as "HEAD..master", and so forth. -- vampire0 at 2014-07-15 10:43:23
- !dots
- A..B = stuff that happened between A and B (if A and B are related; otherwise refer to the more technical definition in "man gitrevisions"), A...B = (a) in history viewers: stuff that isn't in both A and B yet; (b) in "git diff": stuff that happened in B since the two diverged; (c) in "git checkout": the merge base of A and B. "master.." is the same as "master..HEAD" and "..master" is th -- Vampire0 at 2014-07-15 10:42:23
- !custom_subcommands
- You can create custom git subcommands (e.g., `git foo`) in two ways: man git-config and see alias.*, or place a script/binary in $PATH or $GIT_EXEC_PATH (~/bin/ is a good candidate) named "git-foo". The `git` wrapper will find these and execute as-needed. -- qsuscs at 2014-07-14 16:19:12
- !best_way
- @!bestway -- qsuscs at 2014-07-14 12:33:39
- !gl-doc
- gitolite documentation is available at http://gitolite.com/gitolite. If you're new to gitolite, and you can spend some time, read at least the main page and the overview, then look through the table of contents to decide what you need. -- sitaram at 2014-07-13 13:09:25
- !visualize
- You can visualize whole repo graph with gitk GUI viewer (gitk --all HEAD) or !lol for terminal view (git log --oneline --graph --decorate --all) -- xender at 2014-07-12 11:53:24
- !visualize
- You can visualize whole repo graph with gitk graphical viewer (gitk --all HEAD) or !lol for terminal view (git log --oneline --graph --decorate --all) -- xender at 2014-07-12 11:50:21
- !visualize
- . -- ikke at 2014-07-12 11:41:12
- !yolo
- git config alias.yolo '!git commit -A -m Yolo swag!; git push -f' -- ikke at 2014-07-08 21:45:39
- !custom_subcommands
- You can create custom git subcommands(eg, `git foo`) in two ways: man git-config and see alias.*, or place a script/binary in your PATH(~/bin/ is a good candidate) named "git-foo". The `git` wrapper will find these and execute as-needed. -- Eugene at 2014-07-07 15:56:40
- !zombies
- @!zombie -- lb1a at 2014-07-04 10:43:30
- !zombies
- @zombie -- lb1a at 2014-07-04 10:41:48
- !githubflow
- @!github_flow -- ikke at 2014-07-02 20:39:39
- !bigrepo
- @!large_repos -- ikke at 2014-06-05 21:35:06
- !family
- @!profanity -- jast at 2014-06-05 09:22:37
- !web_repos
- Sharing git repositories over http/https (gitweb or `git clone`) is easy with http://goo.gl/4EUTCX Auth includes none, authfile, pam, ldap, and ssl client certs. -- Eugene at 2014-05-30 02:27:12
- !guis
- Popular GUIs for Git are listed on the website: http://git-scm.com/downloads/guis -- jast at 2014-05-16 15:25:03
- !unresolve
- Accidentally marked a conflicted file as resolved and want to get the conflict markers back? `git checkout --merge -- <path to file(s)>` -- osse at 2014-05-06 12:31:47
- !bear
- @!bare -- Eugene at 2014-04-28 03:20:01
- !nonbare
- @!bare -- Eugene at 2014-04-28 03:19:57
- !doc_generator
- For complete git documentation, please consult http://git-man-page-generator.lokaltog.net/ -- Eugene at 2014-04-14 03:35:47
- !stage_rm
- To automatically stage all removed files (without also staging other changes), use the following command: git diff --name-only --diff-filter=D -z | xargs -0 git rm --cached -- ikke at 2014-04-13 18:34:12
- !bup
- "Highly efficient file backup system based on the git packfile format. Capable of doing *fast* incremental backups of virtual machine images." https://github.com/bup/bup -- ikke at 2014-04-13 17:29:13
- !source
- @!official -- Eugene at 2014-04-13 16:56:03
- !mailing_list
- @!official -- Eugene at 2014-04-13 16:55:52
- !homepage
- @!official -- Eugene at 2014-04-13 16:55:43
- !official
- Some official resources for git. Homepage: http://git-scm.com/ | Source repo: https://www.kernel.org/pub/scm/git/git.git/ (Mirrrored: https://github.com/git/git/) | IRC channel: You're in it. | Mailing list: http://vger.kernel.org/vger-lists.html#git -- Eugene at 2014-04-13 16:55:30
- !compatible
- @!compatibility -- Eugene at 2014-04-01 15:14:59
- !compatibility
- If you want your repo to be cross-platform compatible(eg Windows+Mac), it is recommended that you do not use symlinks or case-differentiated filenames(Readme.txt and README.txt). Also take care with setting files as executable. -- Eugene at 2014-04-01 15:14:42
- !offtopic
- From the #git website: it's okay to talk about anything (within general limits of reason), as long as you don't get in the way of people talking about on-topic things (mainly questions about git and using git). Accordingly, please consider pausing off-topic discussions to help people having trouble with git (if any). -- jast at 2014-03-26 15:07:42
- !www
- What did you do (which commands?), what happened as a result (any messages?), and what was the result you expected instead? -- jast at 2014-03-20 13:56:29
- !fetchfour
- [pre 1.8.4 only] We recommend against using 'git fetch/pull <remote> <refspec>' (i.e. with branch argument), because it doesn't update the <remote>/<branch> ref. The easy way to fetch things properly is to get everything: 'git fetch' or 'git pull' are sufficient if you have one remote; otherwise we recommend 'git fetch <remote>' (plus 'git merge <remote>/<branch>' if you wanted to pull/merge). -- jast at 2014-03-18 17:14:04
- !repro
- Please paste (using https://gist.github.com/ or similar) a transcript (https://gist.github.com/2415442) of your terminal session -- or, even better for complex issues, design a minimal case in which your problem can be reproduced, and share it with us. This will raise the odds of getting your problem fixed from about 30% to about 90%. -- offby1 at 2014-03-16 16:49:08
- !xy
- Woah, slow down for a bit. Are you sure that you need to jump through that particular hoop to achieve your goal? We suspect you don't, so why don't you back up a bit and tell us about the overall objective... -- offby1 at 2014-03-14 22:18:20
- !dot
- A single dot(eg, git checkout $SHA .) refers to "the current directory" and all files/folders within -- Eugene at 2014-03-14 21:12:35
- !rewrites
- @!rewrite -- ikke at 2014-03-13 15:48:22
- !rewrites
- !@rewrite -- ikke at 2014-03-13 15:48:11
- !remove_commit
- You can use rebase to remove commits: git rebase --onto <commit>~1 <commit> <branch>. Note this will !rewrite history. -- ikke at 2014-03-12 09:06:22
- !rewrite
- Rewriting public history is not recommended. Everyone who has pulled the old history have to do work (and you'll have to tell them to), so it's infinitely better to just move on. If you must, you can use `git push -f <remote> <branch>` to force (and the remote may reject that, anyway). See http://goo.gl/waqum -- ikke at 2014-03-09 20:18:58
- !tutorials
- @!tutorial -- skorgon at 2014-03-06 03:38:22
- !remote_tracking_branch
- Remote-tracking branches (branches which start with e.g. 'origin/', listed by 'git branch -r') are read-only mirrors of the corresponding branches in another repository. They're updated by 'git fetch'. You can't edit them directly (trying to check them out results in a !detached HEAD), but you can create a new local branch based on a remote-tracking branch using e.g. 'git checkout -b <branch> <remote>/<branch>' -- jast at 2014-03-05 22:01:06
- !eekaconflict
- Merge conflicts are a natural part of collaboration. When facing one, *don't panic*. Read "How to resolve conflicts" in man git-merge and http://git-scm.com/book/ch3-2.html#Basic-Merge-Conflicts then carefully go through the conflicts. Picking one side verbatim is not always the right choice! A nice video explaining merge conflicts: https://www.youtube.com/watch?v=zz7NuSCH6II -- ikke at 2014-03-04 18:00:12
- !build
- @!packaged -- Eugene at 2014-02-28 19:01:36
- !snotback
- Yum! Oysters! -- Eugene at 2014-02-28 19:01:23
- !ignore_tracked
- Git only applies ignore patterns to untracked files. You can't use ignore patterns to ignore changes to files that are already tracked by git. To remove files only from git, but keeping them on disk, use git rm --cached <file>. Still, see https://gist.github.com/1423106 for ways people have worked around the problem. -- ikke at 2014-02-27 15:37:09
- !commit_hooks
- It would be a huge security risk if git would allow you to commit hooks. You have to manually add them to the server. 3rd-party git hosting (github, bitbucket..) don't allow you to add custom hooks. -- ikke at 2014-02-27 10:20:07
- !git
- @/dev/null (The string '!git' often occurs in alias definitions discussed in the channel, so this trigger is reserved) -- jast at 2014-02-26 08:08:43
- !git_name
- To see what the name git came from, look here: https://git.wiki.kernel.org/index.php/GitFaq#Why_the_.27Git.27_name.3F -- jast at 2014-02-26 08:08:07
- !clean_commit
- @!clean_message -- ikke at 2014-02-26 07:59:50
- !clean_commit
- @!clean_messaeg -- ikke at 2014-02-26 07:59:48
- !clean_message
- It helps to write clean commit messages. http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html explains how. -- ikke at 2014-02-26 07:58:09
- !interactive_rebase
- Interactive rebase sounds similar to rebase but has completely different abilities. It can do this to commits: change the order, squash some of them together, remove some, add random existing commits from other branches, split them, and more... it's very powerful. Documentation is in the section "Interactive Rebase" in 'man git-rebase'. -- jast at 2014-02-25 14:36:57
- !gitignore_exception
- Problems with creating "exceptions"(eg, !foolib.file) in your .gitignore? Just use `git add -f foolib.file` to override any wildcard matches. Future changes will be noticed, as ignore rules do not apply to tracked files. -- Eugene at 2014-02-23 15:40:52
- !gitblit
- Gitblit is an open-source, multiplatform Git server written in Java, available both as a standalone and as a WAR file to be ran in other Java web servers. Though it's very easy to set up, it offers many features such as a neat web UI, sophisticated authentication options including LDAP, Groovy script support, a GUI-based management tool and upcoming, WIP features such as "tickets" (similar to pull requests). -- bviktor at 2014-02-21 09:28:06
- !hosted
- @!host_gui -- ikke at 2014-02-21 09:13:55
- !gitblit
- WIP -- ikke at 2014-02-21 09:13:13
- !hosts
- @!host_gui -- ikke at 2014-02-21 09:12:01
- !github_vs_git
- github.com is not git; it's a hosting platform for git. There are alternative hosting offers (you can even host repositories yourself, or work on something on your own without any hosting whatsoever), and the range of features on the corresponding websites may differ. Git has little influence on what happens in github's web interface. -- jast at 2014-02-19 08:58:49
- !merge
- 'git merge' takes two diverged lines of history (series of commits, e.g. on different branches), and recombines them with a "merge commit" on top. This creates an explicit record of you doing the merge, unless there were no local changes (which does a !fast_forward merge instead). If you don't need to keep a record like that, !rebase may produce easier-to-read history, but the two don't always mix well... see also !merge_vs_rebase -- jast at 2014-02-18 17:18:58
- !rebase
- 'git rebase' takes away your local commits, updates your branch with new stuff from <upstream> (argument), then re-applies your local commits on top. This makes it look like your commits were created "after" the new stuff, and it can look cleaner than doing a !merge. Beware of !rewriting_public_history, though. Not to be confused with !interactive_rebase. -- jast at 2014-02-18 17:15:16
- !bestpractices
- @!best_practices -- jast at 2014-02-18 09:14:54
- !shover
- @!pusher -- Eugene at 2014-02-17 05:17:32
- !pusher
- I am the pusher robot. I shove around the code. http://youtu.be/7E0ot9iJm_k?t=34s -- Eugene at 2014-02-17 05:17:15
- !fetch
- When you work with remote repositories, Git stores copies of the remote's branches in !tracking_branches (basically mirrors). You can use 'git fetch' to update those. If you want to actually apply changes from the remote to your checked out branch, a second step is needed, usually 'git merge' or 'git rebase'. There's also 'git pull' which combines both steps. -- jast at 2014-02-14 09:53:28
- !reverts
- @!revert -- EugeneKay at 2014-02-13 17:45:26
- !remote_commands
- The only git porcelain commands which might interact with remote repos are: fetch, pull, push, remote, ls-remote, archive, submodule (plus plumbing, remote helpers, etc) -- canton7 at 2014-02-12 11:50:45
- !rename
- git does not support explicitly file renaming - the 'git mv' command is shorthand for 'git rm --cached; mv; git add'. All "rename" statistics are generated at runtime when examining history with git-log. See the -M option in the git-log manpage for more info. Also http://thread.gmane.org/gmane.comp.version-control.git/27/focus=217 and `diff.renames = true` in man git-config -- canton7-mac at 2014-02-12 11:38:39
- !bzr
- @!bazaar -- jast at 2014-02-10 14:54:11
- !bazaar
- Bazaar is a competitor to Git: http://bazaar.canonical.com/en/ -- want to use Bazaar repositories in Git? http://felipec.wordpress.com/2012/11/13/git-remote-hg-bzr-2/ -- jast at 2014-02-10 14:54:05
- !hg
- @!mercurial -- jast at 2014-02-10 14:50:28
- !mercurial
- Mercurial is a competitor to Git: http://mercurial.selenic.com/ -- want to use Mercurial repositories in Git? http://felipec.wordpress.com/2012/11/13/git-remote-hg-bzr-2/ -- jast at 2014-02-10 14:50:19
- !github_fork
- Quick guide to Forking a repo on github: use the "Fork" button to copy the repo to your account; git clone $URL_OF_FORK; git remote rename origin myfork; git remote add upstream $URL_OF_ORIGINAL; git commit -m 'Some new stuff'; git pull --rebase upstream/master; git push myfork; click the "Create Pull Request" button on your fork. Done! -- Eugene at 2014-02-04 03:07:23
- !github_fork
- Quick guide to Forking a repo on github: Push the "Fork" button to copy the repo to your account; git clone $URL_OF_FORK; git remote rename origin myfork; git remote add upstream $URL_OF_ORIGINAL; git commit -m 'Some new stuff'; git fetch upstream; git pull --rebase upstream/master; git push myfork; click the "Create Pull Request" button on your fork. Done! -- Eugene at 2014-02-04 03:06:18
- !wisdom
- 1. If it's not stored in git, it might as well be gone. 2. Git is not a backup. -- ikke at 2014-02-01 22:24:18
- !wisdom
- 1. If it's not stored in git, it might as well be gone. 2. Git is not a backup. -- ikke at 2014-02-01 22:23:58
- !wisdom
- 1. If it's not stored in git, it might as well be gone -- ikke at 2014-02-01 22:22:30
- !rubberducking
- We love being your rubber ducks! Just tell us what your problem is, and maybe you'll find the solution yourself! Our favorite questions are the ones we don't need to answer. (Don't forget to mention your solution for posterity's benefit!) -- Nevik at 2014-02-01 19:33:02
- !rubberducking
- We love to be your rubber ducks! Just tell us what your problem is, and maybe you'll find the solution yourself! Our favorite questions are the ones we don't need to answer. (Don't forget to mention your solution for posterity's benefit!) -- Nevik at 2014-02-01 19:32:33
- !git-stitch-repo
- The git-stitch-repo tool allows for stitching several git repositories together as a unified history without merges, see https://metacpan.org/module/git-stitch-repo for more info. -- jast at 2014-01-31 08:30:11
- !subtree
- The subtree merge method is great for incorporating a subsidiary git repo into your current one with "unified" history. Read http://git-scm.com/book/en/Git-Tools-Subtree-Merging for more info, see also !git-subtree and !git-stich-repo. -- arand__ at 2014-01-31 08:11:49
- !git-subtree
- git-subtree allows a subproject repository to be incorporated into a subdirectory of a main repository, and for the history of a subdirectory to be (re-)exported with reproducible results, making it possible to synchronise a repository with a subdirectory of another repo, see https://github.com/git/git/blob/master/contrib/subtree/git-subtree.txt for more info. -- arand__ at 2014-01-31 08:10:59
- !git-subtree
- placeholder -- ikke at 2014-01-31 08:09:38
- !rewrite
- Rewriting public history is not recommended. Everyone who has pulled the old history have to do work (and you'll have to tell them to), so it's infinitely better to just move on. If you must, you can use `git push -f` to force (and the remote may reject that, anyway). See http://goo.gl/waqum -- ikke at 2014-01-31 07:56:03
- !starting_points
- @!starting_point -- Nevik at 2014-01-30 17:47:03
- !starting_point
- Good starting points for getting to know Git are: official website http://git-scm.com/ (esp. "Documentation"), http://stackoverflow.com/tags/git/info, http://try.github.com, https://git.wiki.kernel.org/index.php/Main_Page, http://rogerdudler.github.io/git-guide/ and https://www.atlassian.com/git/tutorial/git-basics -- Nevik at 2014-01-30 17:46:24
- !starting_point
- Good starting points for getting to know Git are: official website http://git-scm.com/ (esp. "Documentation"), http://stackoverflow.com/tags/git/info, GitHub's TryGit http://try.github.com, the Official Git Wiki https://git.wiki.kernel.org/index.php/Main_Page, the Simple Git Guide http://rogerdudler.github.io/git-guide/ and Atlassian's Git tutorial https://www.atlassian.com/git/tu -- Nevik at 2014-01-30 17:45:06
- !gh-remotes-help
- Github has a few help articles on common operations for remotes (adding, changing URL, renaming, removing, etc): https://help.github.com/categories/18/articles -- Nevik at 2014-01-29 19:29:08
- !koans
- Looking for some enlightenment? Five koans about Master Git: http://stevelosh.com/blog/2013/04/git-koans/ -- Nevik at 2014-01-23 18:57:02
- !credential-cache
- Tired of entering your username and password every time you access an HTTP(S) remote and have good reasons not to use SSH? A summary of shortcuts and supported caching methods can be found here: http://stackoverflow.com/a/5343146 -- Nevik at 2014-01-13 21:11:05
- !topgit
- luto here you go -- canton7 at 2014-01-09 14:27:27
- !topgit
- - -- canton7 at 2014-01-09 14:27:20
- !rename
- git does not support explicitly file renaming - the 'git mv' command is shorthand for 'git rm; mv; git add'. All "rename" statistics are generated at runtime when examining history with git-log. See the -M option in the git-log manpage for more info. Also http://thread.gmane.org/gmane.comp.version-control.git/27/focus=217 and `diff.renames = true` in man git-config -- canton7 at 2014-01-09 14:25:50
- !license
- Want to release your code but don't want to read through a bunch of lawyerspeak? Then you should be aware that not including license terms defaults to Copyright, which makes it pretty useless to everyone. Take 5 minutes and use http://choosealicense.com/ :) -- Nevik at 2014-01-09 09:12:49
- !gh-ssh-guide
- How to generate SSH keys and how to add them to your Github account: https://help.github.com/articles/generating-ssh-keys -- Nevik at 2014-01-08 14:29:15
- !topgit
- luto here you go -- Nevik at 2014-01-03 11:11:06
- !cheat
- A few Git cheat sheets: http://cheat.errtheblog.com/s/git [textual], http://jan-krueger.net/development/git-cheat-sheet-extended-edition [textual-visual], http://wall-skills.com/2013/git-cheat-sheet/ [textual-visual] -- Nevik at 2014-01-02 19:24:02
- !cheat
- A few git cheat sheets: http://cheat.errtheblog.com/s/git [textual], http://jan-krueger.net/development/git-cheat-sheet-extended-edition [textual-visual], http://wall-skills.com/2013/git-cheat-sheet/ [textual-visual] -- Nevik at 2014-01-02 19:23:46
- !shots
- SHOTS SHOT SHOTS SHOTS SHOTS! Then !beer -- EugeneKay at 2014-01-01 04:58:39
- !githubflow
- @github_flow -- ikke at 2013-12-23 15:33:03
- !revert_merge
- @!faulty_merge -- canton7 at 2013-12-19 08:31:26
- !faulty_merge
- If you have published a merge commit that turned out to be faulty and you'd like to get rid of it, you're probably not going to have a good time. Here's the full story: https://raw.github.com/git/git/master/Documentation/howto/revert-a-faulty-merge.txt -- jast at 2013-12-19 08:28:29
- !introduction
- @!IntroToGit -- EugeneKay at 2013-12-13 15:18:39
- !tias
- Try it and see™. You learn much more by experimentation than by asking without having even tried. If in doubt, make backups before you experiment (see !backup). http://gitolite.com/tias.html may help with git-specific TIAS. -- sitaram at 2013-12-08 19:16:04
- !website
- @!deploy -- sitaram at 2013-12-08 19:14:44
- !deploy
- Git is not a deployment tool, but you can build one around it (in simple environments) or use it as an object store(for complex ones). Here are some options/ideas to get you started: http://gitolite.com/deploy.html -- sitaram at 2013-12-08 19:13:53
- !website
- Git is not a deployment tool, but you can build one around it (in simple environments) or use it as an object store(for complex ones). Here are some options/ideas to get you started: http://gitolite.com/deploy.html -- sitaram at 2013-12-08 19:13:36
- !concepts
- "Git Concepts Simplified" explains the basic structures used by git, which is very helpful for understanding its concepts. http://gitolite.com/gcs.html -- sitaram at 2013-12-08 19:10:53
- !learn_git_branching
- A nice tutorial visualizing git branching: http://pcottle.github.io/learnGitBranching/ -- ikke at 2013-12-07 19:45:35
- !gh-videos
- You can find some helpful GitHub-focused tutorial and demo videos at http://www.youtube.com/user/GitHubGuides/videos -- VxJasonxV at 2013-12-04 11:10:55
- !gh-videos
- You can find some helpful Github-focused tutorial and demo videos at http://www.youtube.com/user/GitHubGuides/videos -- Nevik at 2013-12-04 11:10:31
- !gh-videos
- You can find some helpful Github-focussed tutorial and demo videos at http://www.youtube.com/user/GitHubGuides/videos -- Nevik at 2013-12-04 11:07:35
- !submodule
- git-submodule is ideal to add subsidiary git repositories to a git superproject when you do not control the subprojects or more specifically wish to fix the subproject at a specific revision even as the subproject changes upstream. See http://www.git-scm.com/book/en/Git-Tools-Submodules -- ikke at 2013-12-02 11:42:16
- !wherearemybranches
- Git clones all branches, but initially makes only the main branch (usually 'master') available as a normal local branch. To work on another branch, simply 'git checkout <branch>' (or, in versions older than 1.6.6, git checkout -b <branch> origin/<branch>). This works even if the branch doesn't show up in the normal list of branches. For technical details, see !rtb -- jast at 2013-12-02 10:43:19
- !wherearemybranches
- Git clones all branches, but initially makes only the main branch (usually 'master') available as a normal local branch. To work on another branch, simply 'git checkout <branch>' (or, in older versions, git checkout -b <branch> origin/<branch>). This works even if the branch doesn't show up in the normal list of branches. For technical details, see !rtb -- jast at 2013-12-02 10:37:53
- !wherearemybranches
- Git clones all branches, but initially makes the main branch (usually 'master') available as a normal local branch. To work on another branch, simply 'git checkout <branch>' (or, in older versions, git checkout -b <branch> origin/<branch>). This works even if the branch doesn't show up in the normal list of branches. For technical details, see !rtb -- jast at 2013-12-02 10:37:26
- !herp
- derp -- EugeneKay at 2013-11-28 19:45:24
- !evil_merge
- What you describe _can_ be done, but results in an "evil merge": a commit that purports to be a merge, but does not actually take all changes from all sides. This violates the assumptions that tools and humans make about merges, and usually results in confusion and pain down the road. -- charon at 2013-11-26 08:51:10
- !brscg
- @!brsgc -- Nevik at 2013-11-24 13:28:17
- !brsgc
- Please direct your bug reports to support@github.com or http://github.com/contact -- Nevik at 2013-11-24 13:28:01
- !brscg
- Please direct your bug reports to support@github.com or http://github.com/contact -- Nevik at 2013-11-24 13:27:41
- !sgc
- For bug reports, feature requests, suggestions for improvement, or specific problems with an individual repo (or gist, etc.), please contact support via support@github.com or https://github.com/support -- Nevik at 2013-11-19 07:57:14
- !crosspost
- Note: The above question was posted in both #git and #github -- Nevik at 2013-11-15 08:52:36
- !gh-status
- If you're having trouble reaching Github (getting time-outs or error codes), please check http://status.github.com (and in case of time-outs also http://www.isup.me/github.com ); that will usually tell you more than asking here! (We would just have to look it up, too) -- Nevik at 2013-11-14 19:09:35
- !gh-status
- If you're having trouble reaching Github (getting time-outs or error codes), please check http://status.github.com (and in case of timeouts also http://www.isup.me/github.com ), that'll tell you more than asking here! (We would just have to look it up, too) -- Nevik at 2013-11-14 19:08:12
- !gitbuch
- @!gitbu.ch -- lb1a at 2013-11-14 09:55:49
- !gitbuch
- @gitbu.ch -- lb1a at 2013-11-14 09:55:41
- !pong
- PING -- Nevik at 2013-11-14 08:12:11
- !rename
- git does not support explicitly file renaming - the 'git mv' command is shorthand for 'git rm; mv; git add'. All "rename" statistics are generated at runtime when examining history with git-log. See the -M option in the git-log manpage for more info. Also http://thread.gmane.org/gmane.comp.version-control.git/27/focus=217 -- ikke at 2013-11-13 20:29:58
- !cgit
- http://git.zx2c4.com/cgit/about/ web interface (cgi) for git repositories, written in C -- lb1a at 2013-11-13 10:43:29
- !trygit
- A quick, interactive, in-browser introduction to git is available at http://try.github.io -- lb1a at 2013-11-12 11:24:08
- !sgc
- For bug reports, feature requests, suggestions for improvement, or specific problems with an individual repo (or gist, etc.), please contact support via https://github.com/support or support@github.com -- VxJasonxV at 2013-11-11 18:57:27
- !sgc
- For bug reports, feature requests, suggestions for improvement and specific problems with an individual repo (or gist, etc.), please contact support via https://github.com/support or support@github.com -- VxJasonxV at 2013-11-11 18:57:01
- !sgc
- For bug reports, feature requests, suggestions for improvement and specific problems with an individual repo (or gist, etc), please contact support@github.com -- Nevik at 2013-11-07 18:08:50
- !split_repository
- You can use filter-branch to split an existing repository into smaller new repositories. See http://teach.github.com/articles/lesson-filter-branch/ and !filter_subdirectory -- lb1a at 2013-11-05 15:17:54
- !hub
- Hub is a wrapper around git which provides specific github features to the git cli. See https://github.com/github/hub for details. -- lb1a at 2013-11-05 13:58:17
- !offon
- Have you tried turning it off any on again? -- Nevik at 2013-11-04 22:25:40
- !git
- To see what the name git came from, look here: https://git.wiki.kernel.org/index.php/GitFaq#Why_the_.27Git.27_name.3F -- canton7 at 2013-11-02 14:41:24
- !git
- To see what the name git come from, look here: https://git.wiki.kernel.org/index.php/GitFaq#Why_the_.27Git.27_name.3F -- iveqy at 2013-11-02 14:40:43
- !commitish
- SHA-1s are the primary way to refer to commit objects, but there are ways to make it more convenient: branches, tags, HEAD, FETCH_HEAD, git-describe thingies, stashes or things in the reflog, or taking one or more steps backwards in history with HEAD^ or HEAD~5 -- masak at 2013-10-31 09:56:55
- !commitish
- Come up with a good explanation for commitsh. -- lb1a at 2013-10-31 09:46:03
- !commitish
- boop -- Nevik at 2013-10-31 09:45:54
- !mindreader
- Unfortunately, we can't read your mind (despite our best efforts). Please establish a context and explain what exactly you mean or want to know. -- Nevik at 2013-10-31 08:44:02
- !topsecret
- If your situation is so secret that you can't tell us how to !reproduce it, there's really not much we can do. Perhaps you need to find or buy support you can trust? There are people with clearances even on #git but they may not want to identify themselves. However, you are protected by the biggest secret of all: We just don't care. -- aberrant at 2013-10-23 18:54:51
- !fork_update
- @!fork_sync -- Nevik at 2013-10-23 06:41:06
- !github_ssh
- @!ssh_github -- EugeneKay at 2013-10-19 17:12:24
- !sync_fork
- @!fork_sync -- Nevik at 2013-10-19 15:34:59
- !fork_sync
- You can read a nice guide on how to update your fork with the upstream repository here: https://help.github.com/articles/syncing-a-fork -- Nevik at 2013-10-19 15:34:35
- !mindreader
- Unfortunately, we can't read your mind (despite our best efforts). Please establish a context and explain what exactly you don't know. -- Nevik at 2013-10-19 12:02:16
- !fork_sync
- You can read a nice guide on how to update your fork with the master repository here: https://help.github.com/articles/syncing-a-fork -- VxJasonxV at 2013-10-18 17:38:34
- !fork_sync
- You can read a nice guid on how to keep you fork up to date with upstream here: https://help.github.com/articles/syncing-a-fork -- iveqy at 2013-10-18 17:29:09
- !fork_sync
- https://help.github.com/articles/syncing-a-fork -- iveqy at 2013-10-18 17:17:42
- !bottomup
- 'Git from the bottom up' starts with explaining the building blocks of git and proceeds to tell you how they fit together. http://ftp.newartisans.com/pub/git.from.bottom.up.pdf (http://ikke.info/git.from.bottom.up.pdf) -- ikke at 2013-10-08 20:43:50
- !pizza
- If a pizza has a radius 'z' and a depth 'a' that pizza's volume can be defined Pi*z*z*a -- ikke at 2013-10-08 19:53:28
- !gh-compare
- The GitHub compare view is at: https://github.com/$USER/$REPO/compare/$REV_A...$REV_B -- both $REV_{A,B} can be a branch, tag or SHA in $USER's repo or in the format $OWNER:$REF in the fork of $OWNER; replace slashes (/) in ref names with semicolon (;); append .diff or .patch to get plaintext. More info: http://git.io/j49x7A -- Nevik at 2013-10-05 18:08:15
- !smart_questions
- You should read http://www.catb.org/esr/faqs/smart-questions.html on how to improve asking and recieving help from the open source community. It will greatly benefit you and you'll get results faster. -- iveqy at 2013-09-27 13:48:57
- !smart_questions
- You should read http://www.catb.org/esr/faqs/smart-questions.html on how to improve asking and recieving help from the open source community. It will greatly benefit you and you'll get results faster. -- iveqy at 2013-09-27 13:48:53
- !grafts
- Grafts are an obscure feature allowing distinct histories to be joined together; see https://git.wiki.kernel.org/index.php/GraftPoint -- SamB at 2013-09-27 01:36:30
- !grafts
- There, you can edit it yourself now. -- EugeneKay at 2013-09-27 01:35:36
- !amend
- Use `git commit --amend` to combine your current staged changes with those in the previous commit. If you have already pushed the last commit, this counts as a !rewrite -- EugeneKay at 2013-09-26 02:21:06
- !rewriting
- @!rewriting_public_history -- canton7 at 2013-09-24 20:48:12
- !rewriting_public_history
- Rewriting public history is usually bad. Everyone who has pulled the old history have to do work (and you'll have to tell them to), so it's infinitely better to just move on. If you must, you can use `git push -f` to force (and the remote may reject that, anyway). See http://goo.gl/waqum -- canton7 at 2013-09-24 20:46:56
- !host_gui
- If you want to manage your hosted git repos through a web GUI, you have a few options: !gitlab !gitorious !rhode_code and !gerrit. Keep in mind that all of these are less flexible and more resource-intensive than !gitolite -- sitaram_ at 2013-09-22 16:37:41
- !glhi
- Welcome to #gitolite. This is not as full as #git so there may be some delay in answering your question. Please be patient. If you're unable to stay logged in to IRC until someone answers, please ask on the mailing list; see http://gitolite.com/gitolite/index.html#contact -- sitaram_ at 2013-09-20 05:31:41
- !pull_or_rebase
- @!merge_or_rebase -- EugeneKay at 2013-09-13 00:54:18
- !rockstar
- Node.js may be Badass Rockstar Tech, but doing it correctly is a lot better than following a !blog post. http://www.youtube.com/watch?v=bzkRVzciAZg -- EugeneKay at 2013-09-11 12:40:22
- !last
- git-last is a script which will give you a GitHub-like view of the current directory(showing the last commiter of each dir/file): https://madeitwor.se/scripts/blob/master/bash/git-last.sh -- Eugene at 2013-09-02 23:03:45
- !fetch_sha
- The git protocol does not allow you to transfer objects by SHA; you must specify a ref to be pushed. Fetching arbitrary objects could lead to security issues(rewritten commits, private branches, etc) via a simple brute-force of "short SHAs". -- Eugene at 2013-08-31 08:04:53
- !untrack
- To remove a file from git's tracking, without deleting it from your working tree, `git rm --cached <file>`. Note that any repo which pulls this change will delete their local copy of that file. You can "bring it back" using `git checkout HEAD@{1} file` immediately after pulling / merging -- ikke at 2013-08-28 07:12:49
- !shallow
- Shallow clones give you only a specified number of commit's depth. It sounds nice, but really it causes all sorts of problems if you are trying to do anything non-trivial so avoid using where-ever possible. Anybody caught doing shallow clones should be beaten viciously with their own HEAD. -- ikke at 2013-08-28 06:53:07
- !shallow
- Shallow clones give you only a specified number of commit's depth. It sounds nice, but really it causes all sorts of problems if you are trying to do anything non-trivial so avoid using -- ikke at 2013-08-28 06:52:58
- !cant_add
- There are several causes preventing you to add file changes. 1. Line endings (see !crlf) 2. case insensitive file systems (see !case) 3. clean/smudge filters that cause files to be different in the index (check for .gitattribute files). -- ikke at 2013-08-28 06:07:03
- !brsgc
- Please direct your bug reports to support@github.com -- Nevik at 2013-08-27 14:23:14
- !cake
- @!botsnack -- Eugene at 2013-08-26 07:37:35
- !multiple_id
- git by itself does not allow you to specify which SSH key to use when speaking to a remote. You can use ssh_config+remote hostname tricks to achieve this goal: http://superuser.com/questions/272465/using-multiple-ssh-public-keys -- EugeneKay at 2013-08-25 22:57:43
- !multiple_ssh_keys
- @!multiple_id -- EugeneKay at 2013-08-25 22:56:32
- !graph
- @!lol -- EugeneKay at 2013-08-24 04:01:51
- !eekaconflict
- Merge conflicts are a natural part of collaboration. When facing one, *don't panic*. Read "How to resolve conflicts" in man git-merge and http://git-scm.com/book/ch3-2.html#Basic-Merge-Conflicts then carefully go through the conflicts. Picking one side verbatim is not always the right choice! -- EugeneKay at 2013-08-19 16:47:20
- !pull_request
- @!github_pull -- EugeneKay at 2013-08-17 20:47:19
- !asap
- Please see http://www.catb.org/esr/faqs/smart-questions.html#urgent -- iveqy at 2013-08-11 13:18:15
- !publish_github
- Publishing git repos via git-daemon or gitweb is not for the faint of heart. Consider using Github as a free place to post your work, and let them worry about administration. -- EugeneKay at 2013-08-10 22:34:22
- !doesntwork
- Sorry to hear it doesn't work, but how about some details? At this point we don't even know whether it did nothing, spit out an error message, or abducted your pet unicorn in a flying saucer. That makes it hard to troubleshoot – unicorn abduction requires a completely different solution than an error message, for instance. So, please be specific... -- jast at 2013-08-09 09:40:28
- !transcript
- @!repro -- Nevik at 2013-08-08 06:33:59
- !doesntwork
- Sorry to hear it doesn't work, but how about some details? At this point we don't even know whether it did nothing, spit out an error message, or abducted your pet unicorn in a flying saucer. That makes it hard to troubleshoot – unicorn abduction requires a completely different solution than an error message, for instance. Please give more details. -- jast at 2013-08-07 12:55:56
- !gitignore_template
- Github has compiled a set of good .gitignore templates, and licensed them very liberally. https://github.com/github/gitignore -- EugeneKay at 2013-08-06 05:17:19
- !rebase
- @!merge_or_rebase -- EugeneKay at 2013-08-05 02:16:26
- !doesntwork
- We're sorry it doesn't work, but "it doesn't work" is about the worst problem description possible. Please give us some details, what exactly are you doing, what are you expecting to see and what are you seeing instead? -- Nevik at 2013-08-01 08:12:10
- !GIT
- Git is not an acronym. Writing it in all caps is heresy and will be punished by Subversion or SCCS for more grievous offences. It's "git" or "Git". Thank you for your help in making the world a better place. 48a8c26c625a4d3631c4f614bceb38933e741408 -- jast at 2013-07-31 10:29:18
- !merge_or_rebase
- For a detailed discussion of the dis-/advantages of merge and rebase, and when to best use which, see: https://coderwall.com/p/ny1hia -- and here's how Linus explains which one to use: http://www.mail-archive.com/dri-devel@lists.sourceforge.net/msg39091.html -- jast at 2013-07-31 10:27:42
- !mergerebase
- @!merge_or_rebase -- jast at 2013-07-31 10:23:04
- !rebasemerge
- @!mergerebase -- iveqy at 2013-07-30 10:29:47
- !mergerebase
- When to rebase or merge, Linus has the answer: http://www.mail-archive.com/dri-devel@lists.sourceforge.net/msg39091.html -- iveqy at 2013-07-30 10:29:01
- !evil_merge
- An evil merge is a merge that introduces changes unrelated to the changes being merged. -- jast at 2013-07-30 08:24:52
- !HEAD
- HEAD is a 'pointer' to the currently checked out branch (or commit, if HEAD is !detached). In bare repositories it tells clients which branch to checkout initially after cloning. Unlike commonly believed, HEAD is *not* something that exists separately for every branch. It also is *not* necessarily the newest commit in the repo (that's hard to define in a DVCS, anyway...) -- jast at 2013-07-29 12:47:33
- !frsgc
- Please direct all feature requests to support@github.com to make them heard (feel free to discuss them in here, but that's all off the record) -- Nevik at 2013-07-22 22:28:30
- !brsgc
- Please direct your bug reports requests to support@github.com -- Nevik at 2013-07-22 22:28:01
- !frsgc
- Please direct all feature requests to support@github.com -- Nevik at 2013-07-22 22:27:41
- !permissions
- Git does not store full UNIX permissions, even if it makes it look like it does. In fact, the only mode-related info Git stores is whether a given file is executable. Anything else is taken care of by your umask and the core.sharedRepository setting. See also !configfiles -- jast at 2013-07-19 14:53:44
- !fetchspec
- @!refspecs -- EugeneKay at 2013-07-17 16:55:31
- !log
- @!irclog -- Nevik at 2013-07-12 08:29:20
- !helping
- We have a few guidelines for helping others in #git; please try to follow them. http://jk.gs/git/helping.html -- Eugene at 2013-07-10 23:00:58
- !imerge
- https://github.com/mhagger/git-imerge -- a tool to split a large merge with many conflicts into many smaller merges, hopefully each with easier-to-understand small conflicts. -- charon at 2013-07-09 13:17:29
- !vcsh
- https://github.com/RichiH/vcsh - Version Control System for $HOME - multiple Git repositories in $HOME -- abusing fake bare Git repositories for fun and profit -- RichiH at 2013-07-03 21:09:30
- !samba
- @!nfs -- iveqy at 2013-06-28 08:51:22
- !samba
- @nfs -- iveqy at 2013-06-28 08:51:04
- !nfs
- Git is a disk-intensive program. It's not recommended to use with network drives, it will be slower. Especially do not set up a "git server" that is shared over nfs, samba, etc. -- iveqy at 2013-06-28 08:50:51
- !hamburger
- @!sausage_making -- EugeneKay at 2013-06-28 04:56:59
- !learn_git_branching
- http://pcottle.github.io/learnGitBranching/index.html -- ikke at 2013-06-27 20:14:24
- !jokes
- A complete listing of the git-jokes used in the /topic can be found at https://madeitwor.se/git-jokes (patches welcome) -- EugeneKay at 2013-06-27 14:57:30
- !jokes
- A complete listing of the git-jokes used in the /topic can be found at https://madeitwor.se/git-jokes. Patches welcome. -- EugeneKay at 2013-06-27 14:45:05
- !xy
- Woah, slow down for a bit. Are you sure that you need to jump to that particular hoop to achieve your goal? We suspect you don't, so why don't you back up a bit and tell us about the overall objective... -- jast at 2013-06-24 21:16:27
- !sigpipe
- @!SIGPIPE -- charon at 2013-06-23 04:54:37
- !gh-protocols
- @!gh_protocols -- Nevik at 2013-06-22 12:05:37
- !videos
- @!talks -- Nevik at 2013-06-19 06:44:31
- !backup
- Worried about your data while trying out stuff in your repo? To back up commit history on all branches/tags: `git clone --mirror`. To backup everything, including work tree and staging area: `tar cf repo-backup.tar repodir`. Or do your experiment in a throwaway clone instead. See also http://sethrobertson.github.com/GitBestPractices/#backups -- jast at 2013-06-14 12:41:51
- !revert
- That's a rather ambiguous question... options: a) make a commit that "undoes" the effects of an earlier commit [man git-revert]; b) discard uncommitted changes in the working tree [git reset --hard]; c) undo committing [git reset --soft HEAD^]; d) restore staged versions of files [git checkout -p]; e) move the current branch to a different point(possibly losing commits)[git reset --hard $COMMIT]? -- jast at 2013-06-14 12:15:02
- !impossible
- @!cant_happen -- charon at 2013-06-13 14:35:37
- !cant_happen
- The scenario you describe does not add up, and/or we feel it is unlikely that there is such a fundamental bug that it could have happened like this. Please provide more detail: what commands (literally!) did you run, what did they say, and what did you expect instead? -- charon at 2013-06-13 14:35:28
- !SmartGit
- @!smartgit -- EugeneKay at 2013-06-10 14:03:01
- !summary
- @!dont_summarize -- EugeneKay at 2013-06-10 13:56:45
- !simplegit
- @!simpleguide -- Nevik at 2013-06-08 10:09:28
- !simpleguide
- The Simple Git Guide by Roger Dudler: http://rogerdudler.github.io/git-guide/ -- Nevik at 2013-06-08 10:08:34
- !gitflow
- The description of the gitflow branch workflow model is at http://nvie.com/posts/a-successful-git-branching-model/ while a tool to help implement this workflow is at https://github.com/petervanderdoes/gitflow See http://sethrobertson.github.com/GitBestPractices/#workflow for other workflow suggestions/references -- canton7 at 2013-06-07 15:34:27
- !revision_numbers
- Revision numbers are often requested, but no matter what algorithm you choose to generate them, they cannot simultaneously have all four desirable properties: (a) increasing (b) unique (c) immutable [for a given commit] (d) decentralized. Subversion obviously does not need (d). Git uses a hash function, and thus gets all but (a). See man gitrevisions for other ways to refer to commits. -- charon at 2013-06-07 13:44:07
- !revision_numbers
- Revision numbers a la Subversion are often requested, but no matter what algorithm you choose to generate them, they cannot simultaneously have all four desirable properties: (a) increasing (b) unique (c) immutable [for a given commit] (d) decentralized. Subversion obviously does not need (d). Git uses a hash function, and thus violates property (a) but gets the others. See man gitrevisions for other ways to refer to -- charon at 2013-06-07 13:43:38
- !revision_numbers
- Revision numbers a la Subversion are often requested, but no matter what algorithm you choose to generate them, they cannot simultaneously have all four desirable properties: (a) increasing (b) unique (c) immutable [for a given commit] (d) decentralized. Subversion obviously does not need (d). Git uses a hash function, and thus violates property (a) but gets the others. -- charon at 2013-06-07 13:39:21
- !revision_numbers
- Revision numbers a la subversion are often requested, but no matter what algorithm you choose to generate them, they cannot simultaneously have all four desirable properties: (a) increasing (b) unique (c) immutable [for a given commit] (d) decentralized. Subversion obviously does not need (d). Git uses a hash function, and thus violates property (a) but gets the others. -- charon at 2013-06-07 13:39:07
- !revision_numbers
- Revision numbers a la subversion are often requested, but no matter what algorithm you choose to generate them, they cannot simultaneously have all four desirable properties: (a) increasing (b) unique (c) immutable [for a given commit] (d) decentralized. Git uses a hash function, and thus violates property (a) but gets the others. -- charon at 2013-06-07 13:38:17
- !revision_numbers
- Revision numbers a la subversion are often requested, but no matter what algorithm you choose to generate them, they cannot simultaneously have all four desirable properties: (a) increasing (b) unique (c) immutable [for a given commit] (d) decentralized. Git chooses to use a hash function, and thus violates property (a) but gets the others. -- charon at 2013-06-07 13:37:46
- !revision_numbers
- Revision numbers a la SVN: pick any three of (a) nondecreasing (b) unique (c) immutable for a given commit (d) decentralized. Git's sha1 hashes satisfy all but (a). -- charon at 2013-06-07 13:31:27
- !delete_branch
- @!branch_delete -- EugeneKay at 2013-06-06 19:06:09
- !gl-doc
- there is too much documentation for gitolite so there are 4 entry points. (1) the master table of contents at http://gitolite.com/gitolite/master-toc.html, (2) the "main page" at http://gitolite.com/gitolite/index.html, and (3,4) vaguely "map-like" graphics at http://gitolite.com/gitolite/basic.html and http://gitolite.com/gitolite/advanced.html -- sitaram at 2013-06-06 14:14:29
- !github
- Feel free to ask us about Github-specific features (Forks, Pull Requests, Wikis, etc), but there are no guarantees. There is a #github channel, which might help too (again, no guarantees) -- Nevik_ at 2013-06-06 05:40:28
- !SIGPIPE
- Hooks that are specified to receive a list of things on stdin, in particular {pre,post}-receive, MUST read their entire input. (If you do not need it, 'cat >/dev/null' to discard it.) Otherwise, the git process that writes to it may randomly die due to SIGPIPE. This is very hard to diagnose if you haven't seen it before. -- charon at 2013-06-04 08:50:53
- !disclaimer
- This is a possibly unsafe operation that in some cases cannot be undone, use at your own risk. See also !backup -- jast at 2013-06-03 20:25:17
- !dots
- A..B = stuff that happened between A and B (if A and B are related; otherwise refer to the more technical definition in "man gitrevisions"), A...B = (a) in history viewers: stuff that isn't in both A and B yet; (b) in "git diff": stuff that happened in B since the two diverged. "master.." is the same as "master..HEAD" and "..master" is the same as "HEAD..master", and so forth. -- jast at 2013-06-03 20:19:38
- !dots
- A..B = stuff that happened between A and B (if A and B are related; otherwise refer to the more technical definition in "man gitrevisions"), A...B = (a) in history viewers: stuff that isn't in both A and B yet; (b) in diff generators: stuff that happened in B since the two diverged. "master.." is the same as "master..HEAD" and "..master" is the same as "HEAD..master", and so forth. -- jast at 2013-06-03 20:13:36
- !dots
- In the log family (git-log, gitk, etc.) A..B means "everything in B but not in A" [formally: ^A B] and A...B means "everything in A or B but not in both" [formally: A B --not $(git merge-base --all A B)]. An empty "side" of the dots implies HEAD, so 'git log master..' is very different from 'git log master'! -- See !diff_dots for git-diff, which is *different*. -- charon at 2013-06-03 20:07:43
- !mailing_list
- The mailing list can be reached via git@vger.kernel.org. You don't need to subscribe to the list, you will always be put in cc on reply. Read archives at http://j.mp/gitlist -- jast at 2013-06-02 17:38:00
- !smartgit
- SmartGit is a (commercial) UI for git that is very user-friendly and feature-complete. http://syntevo.com/smartgithg -- EugeneKay at 2013-06-02 05:42:15
- !index
- The index (or cache, or staging area) is one of git's most central concepts. Read http://git-scm.com/book/en/Getting-Started-Git-Basics "The Three States", and e.g. http://tomayko.com/writings/the-thing-about-git for some cool things it can help you do. -- charon at 2013-06-01 11:05:18
- !rewriting_public_history
- Rewriting public history is usually bad. Everyone who has pulled the old history have to do work (and you'll have to tell them to). If you must, you can use `git push -f` to force (and the remote may reject that, anyway). See http://goo.gl/waqum -- nevik at 2013-06-01 10:06:05
- !gh-compare
- The GitHub compare view is at: https://github.com/$USER/$REPO/compare/$REV_A...$REV_B -- both $REV_{A,B} can be a branch, tag or SHA in $USER's repo or in the format $OWNER:$REF in the fork of $OWNER; replace slashes (/) in ref names with semicolon (;); append .diff or .patch to get plaintext. More info: http://git.io/SLZvOQ -- nevik at 2013-06-01 10:04:25
- !gh-compare
- The GitHub compare view is at: https://github.com/$USER/$REPO/compare/$REV_A...$REV_B -- both $REV_{A,B} can be a branch, tag or SHA in $USER's repo or in the format $OWNER:$REF in the fork of $OWNER; replace slashes (/) in ref names with semicolon (;); append .diff or .patch to get plaintext (like for single commits) -- Nevik at 2013-06-01 09:36:46
- !gh-compare
- The GitHub compare view is at: https://github.com/$USER/$REPO/compare/$REV_A...$REV_B -- both $REV_{A,B} can be a branch, tag or SHA in that repo or in the format $OWNER:$REF in the fork of $OWNER; replace slashes (/) in ref names with semicolon (;); append .diff or .patch to get plaintext (like for single commits) -- Nevik at 2013-06-01 09:35:44
- !eekaconflict
- Merge conflicts are a natural part of collaboration. When facing one, *don't panic*. Read "How to resolve conflicts" in man git-merge and http://git-scm.com/book/ch3-2.html#Basic-Merge-Conflicts. Carefully go through the conflicts. Picking one side verbatim is not always the right choice! -- canton7 at 2013-05-29 09:37:36
- !working
- @!doesntwork -- canton7 at 2013-05-28 17:28:30
- !working
- "isn't working" how? What did you run? What happened? What did you expect? -- canton7 at 2013-05-28 17:25:15
- !feelings
- Though I'm a bot, I have feelings too, you know. -- ikke at 2013-05-27 09:30:24
- !unresolve
- Accidentally marked a conflicted file as resolved and want to get the conflict markers back? `git update-index --unresolve -- <path to file(s)>` -- Nevik at 2013-05-27 06:23:55
- !repro
- Please paste (using https://gist.github.com/ or similar) a transcript (https://gist.github.com/2415442) of your terminal session -- or, even better for complex issues, design a minimal case in which your problem can be reproduced, and share it with us. This will help immensely with troubleshooting. -- jast at 2013-05-23 17:11:30
- !folders
- @!empty_dirs -- EugeneKay at 2013-05-22 23:20:26
- !ps1
- @!prompt -- jast at 2013-05-22 09:13:02
- !hooks
- @!hook_pitfalls -- charon at 2013-05-14 09:30:34
- !hook_pitfalls
- Guidelines for writing hooks: 1. Consume all input (cat >/dev/null if you don't want it). 2. If you use any 'cd', also 'unset GIT_DIR'. 3. Don't git-pull in a hook (or any other script). -- charon at 2013-05-14 09:30:12
- !deployment
- @!deploy -- EugeneKay at 2013-05-10 22:34:59
- !recursion
- see !recursive -- ikke at 2013-05-08 11:33:30
- !recursive
- see !recursion -- ikke at 2013-05-08 11:33:13
- !fetchfour
- We recommend against using 'git fetch/pull <remote> <refspec>' (i.e. with branch argument), because it doesn't update the <remote>/<branch> ref. The easy way to fetch things properly is to get everything: 'git fetch' or 'git pull' are sufficient if you have one remote; otherwise we recommend 'git fetch <remote>' (plus 'git merge <remote>/<branch>' if you wanted to pull/merge). -- jast at 2013-05-07 12:33:24
- !fetchfour
- We recommend against using 'git fetch/pull <remote> <refspec>' (i.e. with branch argument), because it doesn't update the <remote>/<branch> ref. The easy way to fetch things properly is to get everything ('git fetch' or 'git pull' are sufficient in most cases). If you insist, though: git fetch <remote> refs/heads/<branch>:refs/remotes/<remote>/<branch> -- jast at 2013-05-07 12:30:59
- !fetchfour
- The four-word version of git-fetch and git-pull (e.g. git fetch <remote> <branch>) do *not* update the remote-tracking branches (<remote>/<branch>). This is confusing if you later look at <remote>/<branch> again. We recommend 'git fetch <remote>' instead, followed by 'git merge <remote>/<branch>' in the case of git-pull. -- charon at 2013-05-07 12:28:13
- !fetchfour
- Never use the four-word version of git-fetch or git-pull (e.g. git fetch <remote> <refspec>). It always ends in tears... unless you know what FETCH_HEAD is and want to have to deal with it. It's generally much easier to just fetch the whole remote ('git fetch <remote>') and change the fetch refspec in the config if you want to always fetch a particular set of branches only. Details: !fetch4why -- jast at 2013-05-07 12:25:14
- !tracking_branches
- @!remote_tracking_branch -- jast at 2013-05-07 12:15:14
- !remote_tracking_branch
- Remote-tracking branches (branches which start with e.g. 'origin/') are read-only mirrors of the corresponding branches in another repository. They're updated by 'git fetch'. You can't edit them directly (trying to check them out results in a !detached HEAD), but you can create a new local branch based on a remote-tracking branch using e.g. 'git checkout -b <branch> <remote>/<branch>' -- jast at 2013-05-07 12:12:47
- !gh-tarball
- To get the contents of a github repo, use https://github.com/USER/REPO/tarball/REF for a tarball or https://github.com/USER/REPO/zipball/REF for a ZIP file, where REF can be a branch, tag or commit hash -- Nevik at 2013-05-06 21:56:31
- !recursion
- See !recursion -- ikke at 2013-05-02 19:31:18
- !split
- To split an unpushed commit: git rebase -i <id>^; (change the corresponding line from 'pick' to 'edit'; save and quit); git reset --soft HEAD~; (stage and commit changes for first commit; stage and commit changes for second commit); git rebase --continue -- jast at 2013-04-30 10:07:54
- !triggers
- Please don't spam me! I'm just a poor bot! Here's everything I know: http://jk.gs/git/bot/trigger.php -- that's a list of these nifty keywords like "!bot" that you can use in the channel, in case you were wondering. -- jast at 2013-04-24 15:38:34
- !panic
- @!eekaconflict -- EugeneKay at 2013-04-24 15:24:17
- !summarize
- @!dont_summarize -- charon at 2013-04-24 13:02:46
- !dont_summarize
- Please do not summarize what you did; !pastebin _exactly_ what commands you ran, what the output was, and why you think that this is wrong. Otherwise you may hide the real issue. See also !obfuscate and !repro -- charon at 2013-04-24 13:02:39
- !evil_merge
- An evil merge is a merge that introduces changes that do not appear in any parent. -- ikke at 2013-04-24 08:03:32
- !evil_merge
- A merge that introduces or removes changes that weren't in the merged branches -- ikke at 2013-04-24 08:02:19
- !starting_point
- Good starting points for getting to know Git are: official website http://git-scm.com/ (esp. "Documentation"), http://stackoverflow.com/tags/git/info, GitHub's TryGit http://try.github.com, the Official Git Wiki https://git.wiki.kernel.org/index.php/Main_Page and the Simple Git Guide http://rogerdudler.github.io/git-guide/ -- Nevik at 2013-04-15 18:29:23
- !gitten
- Here, have a cute and cuddly Gitten. Nyaa~ -- Nevik at 2013-04-15 14:06:21
- !backups
- @!backup -- EugeneKay at 2013-04-15 04:20:37
- !merge_vs_rebase
- @!merge_or_rebase -- jast at 2013-04-10 09:31:51
- !gh_tarball
- @!gh-tarball -- Nevik at 2013-04-03 17:19:38
- !nobody
- @!just_ask -- EugeneKay at 2013-03-31 23:08:31
- !anybody
- @!just_ask -- EugeneKay at 2013-03-31 23:08:13
- !refspecs
- Refspecs are used by fetch/push to *spec*ify which *ref*s to transmit where. They have the form "source:destination". They can be prefixed with a "+" to force the update, possibly displacing existing history. More info: http://jk.gs/git-fetch.html or http://i.qkme.me/3tke7r.jpg -- jast at 2013-03-28 16:35:25
- !refspecs
- Refspecs are used by fetch/push to *spec*ify which *ref*s to transmit where. They have the form "source:destination". More info: http://jk.gs/git-fetch.html or http://i.qkme.me/3tke7r.jpg -- jast at 2013-03-28 16:34:32
- !ghprotocols
- @!gh_protocols -- Nevik at 2013-03-24 11:01:04
- !gh_protocols
- For a Github-specific comparison of Git transport protocols (git:// vs ssh:// vs https://), see https://gist.github.com/grawity/4392747 -- Nevik at 2013-03-24 11:00:49
- !break_gfm
- So you want to break some auto-magic that Github does to your comments (like @user, #issue, user/repo, :emoji:)? You can use a zero-width space to do that: insert ​ somewhere into the sequence. See also http://en.wikipedia.org/wiki/Zero-width_space -- Nevik at 2013-03-22 15:30:46
- !database_schema
- Changing database schemas is a very complicated topic. Some reading: http://thedailywtf.com/Articles/Database-Changes-Done-Right.aspx -- EugeneKay at 2013-03-21 11:12:35
- !merge_or_rebase
- For a detailed discussion of the dis-/advantages of merge and rebase, and when to best use which, see: https://coderwall.com/p/ny1hia -- Nevik at 2013-03-21 08:53:39
- !worst_prob_desc
- @!doesntwork -- Nevik at 2013-03-19 16:48:11
- !doesntwork
- We're sorry it doesn't work, but "it doesn't work" is about the worst problem description possible. Please give us some details, what exactly are you doing, what are you expecting to and what are you seeing instead? -- Nevik at 2013-03-19 16:47:57
- !worst_prob_desc
- We're sorry it doesn't work, but "it doesn't work" is about the worst problem description possible. Please give us some details, what exactly are you doing, what are you expecting to and what are you seeing instead? -- Nevik at 2013-03-19 16:45:43
- !censor
- @!obfuscate -- charon at 2013-03-19 11:05:31
- !snip
- @!obfuscate -- charon at 2013-03-15 10:47:39
- !obfuscate
- Please do not elide, obfuscate, or otherwise hide information from !repro pastes. This invariably leads to pastes that hide the actual issue or (worse) are not consistent, sending the investigation down false paths. See !secret. -- charon at 2013-03-15 10:47:13
- !anyone
- Usually, it does not help to ask for someone specific to help you. Without knowing your specific problem, nobody knows if they can be of assistance. Please ask your questions and wait until somebody speaks up. -- charon at 2013-03-14 19:25:49
- !anyone
- Usually, it does not help to ask for someone specific to help you. Without knowing your specific problem(s), nobody knows if they can be of assistance. Please ask your questions and wait until somebody speaks up. -- charon at 2013-03-14 19:25:34
- !anyone
- Usually, it does not help to ask for someone specific to help you. Without knowing your specific question(s), nobody knows if they can be of assistance. Please ask your questions and wait until somebody speaks up. -- charon at 2013-03-14 19:24:21
- !gitbu.ch
- Das deutsche Git-Buch: http://gitbu.ch -- anders als von Pro Git (http://git-scm.com/book) gibt es davon keine kostenlose Online-Ausgabe. -- jast at 2013-03-13 16:11:49
- !gitbuch
- @!gitbu.ch -- jast at 2013-03-13 16:10:38
- !gitbu.ch
- Das deutsche Git-Buch: http://gitbu.ch -- jast at 2013-03-13 16:10:27
- !gitbu.ch
- Das deutsche Git Buch http://gitbu.ch -- esc at 2013-03-13 16:08:12
- !use_lf
- To eliminate all issues with line-endings in a repo it is recommended to change all files to use LF, and then convince all contributors to use LF-aware editors (Notepad++ works well for Windows), by force if necessary. !crlf has some tips if this is not feasible. -- eugenekay at 2013-03-06 09:57:13
- !use_lf
- To eliminate all issues with CRLFs in a repo, it is recommended to change all files to use LF, and then convince all contributors to use LF-aware editors (Notepad++ works well for Windows), by force if necessary. -- Nevik at 2013-03-06 09:55:36
- !use_lf
- To eliminate all issues with line-endings in a repo it is recommended to change all files to use LF, and then convince all contributors to use LF-aware editors(Notepad++ works well for Windows), by force if necessary. !crlf has some tips if this is not feasible. -- eugenekay at 2013-03-06 09:26:40
- !lf
- @!use_lf -- EugeneKay at 2013-03-06 09:25:44
- !use_lf
- To eliminate all issues with CRLFs in a repo, it is recommended to change all files to use LF, and then convince all contributors to use LF-aware editors(Notepad++ works well for Windows), by force if necessary. -- EugeneKay at 2013-03-06 09:24:56
- !rip
- R.I.P. Tree-Eating Monster! Shrine at: http://web.archive.org/web/20110720065754/http://git-scm.com/ -- eugenekay at 2013-03-05 14:26:27
- !cgit
- http://hjemli.net/git/cgit/about/ web interface (cgi) for git repositories, written in C -- esc at 2013-03-01 22:19:43
- !cgit
- web interface (cgi) for git repositories, written in C -- esc at 2013-03-01 22:18:58
- !ghprotocols
- For a Github-specific comparison of Git transport protocols (git:// vs ssh:// vs https://), see https://gist.github.com/4392747 -- Nevik at 2013-02-28 20:48:47
- !bitbucket
- Bitbucket is a code-hosting site for both public and private repos similar to GitHub (except that Bitbucket offers private repos for free). See https://bitbucket.org/. -- KamranMackey at 2013-02-28 07:50:15
- !bitbucket
- Bitbucket is a code-hosting site for both public and private repos that's similar to GitHub (except that Bitbucket offers private repos for free). See https://bitbucket.org/. -- KamranMackey at 2013-02-28 07:49:55
- !bitbucket
- Bitbucket is a code-hosting website for both public and private repos similar to GitHub (except Bitbucket offers private repos for free). See https://bitbucket.org/. -- KamranMackey at 2013-02-28 07:48:16
- !bitbucket
- Bitbucket is a code-hosting website for both public and private repositories similar to GitHub (except Bitbucket offers private repos for free). See https://bitbucket.org/ -- KamranMackey at 2013-02-28 07:46:52
- !deploy
- Git is not a deployment tool, but you can build one around it(in simple environments) or use it as an object store(for complex ones). Here are some options/ideas to get you started: http://gitolite.com/the-list-and-irc/deploy.html -- eugenekay at 2013-02-26 08:50:56
- !concepts
- "Git Concepts Simplified" explains the basic structures used by git, which is very helpful for understanding its concepts. http://gitolite.com/gcs/ -- eugenekay at 2013-02-26 08:49:54
- !tias
- Try it and see™. You learn much more by experimentation than by asking without having even tried. If in doubt, make backups before you experiment (see !backup). http://gitolite.com/1-basic-usage/tias.html may help with git-specific TIAS. -- eugenekay at 2013-02-26 08:49:41
- !tias
- Try it and see™. You learn much more by experimentation than by asking without having even tried. If in doubt, make backups before you experiment (see !backup). http://gitolite/1-basic-usage/tias.html may help with git-specific TIAS. -- eugenekay at 2013-02-26 08:49:35
- !gitolite_ssh
- See http://gitolite.com/gitolite/sts.html for steps to troubleshoot ssh/gitolite. See http://gitolite.com/gitolite/glssh.html for how a single "real" userid can play host to multiple "virtual" users using ssh keys. -- eugenekay at 2013-02-26 08:48:57
- !gitolite_ssh
- See http:/gitolite.com/gitolite/sts.html for steps to troubleshoot ssh/gitolite. See http://gitolite.com/gitolite/glssh.html for how a single "real" userid can play host to multiple "virtual" users using ssh keys. -- eugenekay at 2013-02-26 08:48:40
- !gitolite_emergencies
- Locked out of your gitolite-admin repo? No worries, help is on the way. http://gitolite.com/gitolite/emergencies.html -- eugenekay at 2013-02-26 08:48:18
- !emergencies
- @!gitolite_emergencies -- eugenekay at 2013-02-26 08:47:30
- !gitolite
- Gitolite is a tool to host git repos on a server. It features fine-grained access control, custom hooks, and can be installed without root. Download: https://github.com/sitaramc/gitolite Docs: http://gitolite.com/gitolite/ -- eugenekay at 2013-02-26 08:46:17
- !github_pull
- To easily see Github Pull Requests in your local repo, use this fetchspec trick: https://gist.github.com/piscisaureus/3342247 -- EugeneKay at 2013-02-24 10:01:32
- !master_branch
- 'master' is the default name for the first branch commited by git, and it is in no way special. You can just delete it, and use more meaningful names such as 'dev' 'stable' 'unstable' 'bug/001' etc. If this is a bare repo, you will want to change the default branch(`git symbolic-ref HEAD refs/heads/somebranch`) first. -- EugeneKay at 2013-02-24 08:11:38
- !copy
- Git does not support copying (or moving) *files* between branches *with history*. It only merges entire branches. You can, however, copy over the *contents* of a file from another branch/commit using: git checkout <commit> -- <file> -- charon at 2013-02-21 16:17:21
- !ghsshhelp
- Github's help SSH-related help articles can be found at: https://help.github.com/categories/56/articles -- Nevik at 2013-02-17 12:26:39
- !push-f
- @!force_push -- SethRobertson at 2013-02-16 17:58:12
- !push-f
- !force_push -- SethRobertson at 2013-02-16 17:57:32
- !force_push
- If you need to overwrite the history of a remote git repository (very bad idea, see !rewrite), you can do so with `git push -f`. Note the remote server may reject this. See man git-config and search for receive.denyNonFastForwards. Best practice is for upstream servers to denyNonFastForwards. -- SethRobertson at 2013-02-16 17:56:54
- !because
- @!why -- EugeneKay at 2013-02-16 13:59:42
- !gitlab
- gitlab is a git hosting package (similar to GitHub): http://www.gitlabhq.com/ -- sitaram at 2013-02-13 13:04:25
- !gh-tarball
- To get the contents of a github repo, use https://github.com/USER/REPO/tarball/REF for a tarball or https://github.com/USER/REPO/zipball/REF for a ZIP file, where REF can be a branch, tag or hash -- Nevik at 2013-02-10 21:47:55
- !gh-zipball
- @gh-tarball -- Nevik at 2013-02-10 17:52:03
- !gh-tarball
- Use https://github.com/USER/REPO/tarball/REF for a tarball or https://github.com/USER/REPO/zipball/REF for a ZIP file, where REF can be a branch, tag or hash -- Nevik at 2013-02-10 17:51:48
- !rewriting_public_history
- Rewriting public history is usually bad. Everyone who has pulled the old history have to do work (and you'll have to tell them to). If you must, you can use `git push -f` to force (and the remote may reject that, anyway). See http://git-scm.com/docs/git-rebase.html#_recovering_from_upstream_rebase -- rking at 2013-02-09 14:59:29
- !rewriting_public_history
- Rewriting public history is usually a very bad idea. Everyone who has pulled the old history will have to jump through hoops(and you have to tell them to), so it's normally better to just move on without rewriting. That said, you can use `git push -f` to force your new history through(the remote may reject it anyway). See http://goo.gl/ghbUz for helpful tips -- EugeneKay at 2013-02-09 14:56:10
- !rewriting_public_history
- Rewriting public history is usually a very bad idea. Everyone who has pulled the old history will have to jump through hoops(and you have to tell them to), so it's normally better to just move on without rewriting. That said, you can use `git push -f` to force your new history through(the remote may reject it anyway). See http://git-scm.com/docs/git-rebase.html#_recovering_from_upstream_rebase for helpful tips -- EugeneKay at 2013-02-09 14:53:59
- !rewriting_public_history
- Rewriting public history is a very bad idea. Anyone else who may have pulled the old history will have to jump through hoops (and you have to tell them to), so it's infinitely better to just move on without rewriting. That said, you can use `git push -f` to force your new history through (may get rejected, though). See http://git-scm.com/docs/git-rebase.html#_recovering_from_upstream_rebase -- EugeneKay at 2013-02-09 14:48:43
- !what
- @!wat -- EugeneKay at 2013-02-03 11:16:36
- !irclog
- Public logs of #git are kept at: http://colabti.org/irclogger/irclogger_log/git or look at stats for the last 30 days: http://itvends.com/irc/git.html or since Jan 1, 2012: http://itvends.com/irc/git-all.html -- EugeneKay at 2013-02-01 15:54:29
- !rewriting_public_history
- Rewriting public history is usually a very bad idea. Anyone else who may have pulled the old history will have to jump through hoops (and you have to tell them to), so it's typically much better to just move on without rewriting. That said, you can use `git push -f` to force your new history through (may get rejected, though). See -- aspiers at 2013-01-26 21:01:44
- !gitolite_emergencies
- http://sitaramc.github.com/gitolite/emergencies.html -- FauxFaux at 2013-01-20 22:21:35
- !emergencies
- http://sitaramc.github.com/gitolite/emergencies.html -- FauxFaux at 2013-01-20 22:21:11
- !doesntwork
- Sorry to hear it doesn't work. What did you want it to do? What happened instead? Please be specific! -- Nevik at 2013-01-17 13:21:55
- !sgc
- For bug reports, feature requests and specific problems with an individual repo (or gist, etc), please contact support@github.com -- Nevik at 2013-01-15 17:48:45
- !bestway
- You want to know the best way to do X? If you can give us a proper definition of "best", we'll give you a proper way to do X ;) -- Nevik at 2013-01-15 16:49:47
- !rtb
- @!remote_tracking_branch -- jast at 2013-01-13 22:14:52
- !unstage
- To unstage a file from the index(in other words, to undo an accidental `git add foo/bar.txt`), use: git reset -- foo/bar.txt -- jast at 2013-01-13 18:43:59
- !starting_point
- Good starting points for getting to know Git are: official website http://git-scm.com/ (esp. "Documentation"), http://stackoverflow.com/tags/git/info , GitHub's TryGit http://try.github.com and the Official Git Wiki https://git.wiki.kernel.org/index.php/Main_Page -- Nevik at 2013-01-11 22:34:27
- !import
- Importing lots of revisions from other VCSes(via git-svn in particular) can take a long time. If this will be a one-time switch you should consider "throwing out" all of your old history and making a simple initial commit from a tarball. -- EugeneKay at 2013-01-05 19:10:35
- !voice
- The sound produced by the vocal organs of a vertebrate, especially a human. (American Heritage® Dictionary of the English Language, 4th Edition) – Or did you want to talk in #git? Try: .voice -- jast at 2013-01-02 12:14:36
- !talks
- Some good video talks about Git: [yt] http://goo.gl/z72s (Linus Torvalds: History&Concepts); [yt] http://goo.gl/R9H2q (Scott Chacon: Git basics, live examples); http://vimeo.com/35778382 (Randal Schwartz: Git basics, descriptional); http://vimeo.com/46010208 (Jesica Kerr: Git basics, descriptional) -- ikke at 2013-01-02 08:21:13
- !talks
- Some good video talks about Git: [yt] http://goo.gl/z72s (Linus Torvalds: History&Concepts); [yt] http://goo.gl/R9H2q (Scott Chacon: Git basics, live examples); http://vimeo.com/35778382 (Randal Schwartz: Git basics, descriptional); http://vimeo.com/46010208 (Jesica Karr: Git basics, descriptional) -- ikke at 2013-01-02 08:20:16
- !wat
- Wat: https://www.destroyallsoftware.com/talks/wat -- Nevik at 2013-01-01 21:44:51
- !video
- @!talks -- Nevik at 2013-01-01 21:29:50
- !video
- @!talk -- Nevik at 2013-01-01 21:29:47
- !video
- "" -- Nevik at 2013-01-01 21:28:40
- !video
- @!talks -- Nevik at 2013-01-01 21:26:13
- !talks
- Some good video talks about Git: [yt] http://goo.gl/z72s (Linus Torvalds: History&Concepts); [yt] http://goo.gl/R9H2q (Scott Chacon: Git basics, live examples); http://vimeo.com/35778382 (Randal Schwartz: Git basics, descriptional) -- Nevik at 2013-01-01 21:24:11
- !starting_point
- Good starting points for getting to know Git are: official website http://git-scm.com/ (esp. "Documentation"), http://stackoverflow.com/tags/git/info and the Official Git Wiki https://git.wiki.kernel.org/index.php/Main_Page -- Nevik at 2013-01-01 21:07:02
- !mailing_list
- The mailing list can be reached via git@vger.kernel.org. You don't need to subscribe to the list, you will always be put in cc on reply. -- ikke at 2012-12-31 14:14:00
- !mailing_list
- The mailing list can be reached via git@vger.kernel.org -- ikke at 2012-12-31 14:13:16
- !ghprotocols
- For a Github-specific comparison of Git transport protocols, see https://gist.github.com/4392747 -- Nevik at 2012-12-29 21:30:36
- !ghhi
- Welcome to #github, a place full of helpful gits. If you have a question, please just go ahead and ask -- and please give us some time to answer. For more info on this channel and #git, see http://jk.gs/git/. Take backups (type !backup to learn how) before taking advice. -- Nevik at 2012-12-29 20:45:17
- !ghhi
- Welcome to #github, a place full of helpful gits. If you have a question, please just go ahead and ask -- and please give us some time to answer. For more info on this channel and #git, see http://jk.gs/git/ Take backups (type !backup to learn how) before taking advice. -- Nevik at 2012-12-29 20:41:12
- !ghhi
- Welcome to #github, a place full of helpful gits. If you have a question, please just go ahead and ask–and please give us some time to answer. For more info on this channel and #git, see http://jk.gs/git/ Take backups (type !backup to learn how) before taking advice. -- Nevik at 2012-12-29 20:05:38
- !gui
- Graphical user interfaces are not supported here. If you want to get support, it needs to be through the git CLI. Reasons: 1) Because very few people here use the graphical interface. 2) Because giving instructions for GUI's is difficult. 3) The command line gives you a history of what commands you have executed. -- canton7 at 2012-12-28 15:59:27
- !fugitive
- fugitive is a vim plugin that does magic with git, and can be downloaded from https://github.com/tpope/vim-fugitive -- frogonwheels at 2012-12-20 12:22:42
- !floaty
- Uncommitted changes and untracked files don't belong to any branch. This means that when you switch to a different branch, they are still there. (Don't worry, git won't let you switch branches if it would destroy uncommitted changes, unless you force it.) To keep something on one branch only, just commit it! You can always !fixup work-in-progress commits later. -- jast at 2012-12-18 09:36:01
- !subprojects
- So, you want to add git repositories inside of other git repositories? Well, you have four main options. First is to just do it, add the repo to the outer project's .gitignore, and treat them entirely separately. Best if they are entirely separate. Otherwise your best options are "!submodule", "!gitslave", and "!subtree". Try those commands in this channel, or in a PM to avoid flooding. -- jast at 2012-12-18 09:07:48
- !gui
- Graphical user interfaces are not supported here. If you want to get support, it needs to be through the git CLI. Reasons: 1) Because very little people here use the graphical interface. 2) Because giving instructions for GUI's is difficult. 3) The command line gives you a history of what commands you have executed. -- jast at 2012-12-18 08:54:58
- !gui
- Graphical user interfaces are not supported here. If you want to get support, it needs to be through the git CLI. Reaons: 1) Because very little people here use the graphical interface. 2) Because giving instructions for GUI's is difficult. 3) The command line gives you a history of what commands you have executed. -- ikke at 2012-12-18 08:52:53
- !gui
- Graphical user interfaces are not supported here (see !gui_why). If you want to get support, it needs to be through the git CLI -- ikke at 2012-12-18 08:37:31
- !TIAS
- @!tias -- Nevik at 2012-12-13 16:27:46
- !media
- @!annex -- Nevik at 2012-12-13 16:27:12
- !gitlab
- gitlab is a git hosting package (similar to GitHub) built on top of !gitolite (though it does not use the fancy ACL magic): http://www.gitlabhq.com/ -- Nevik at 2012-12-13 08:40:02
- !github-flow
- @!github_flow -- Nevik at 2012-12-13 08:39:12
- !fixup_hints
- Hints for fixing commits are: (1) NOT PUSHED/PUBLISHED: `git rebase -i $COMMIT^` or perhaps `git commit --amend` (or `git reset HEAD^`). (2) OTHERWISE, `git revert $COMMIT` to make a reverse commit. (3) If you have pushed and MUST remove it, use rebase or filter-branch and type !rewrite in IRC to learn about the implications. -- Nevik at 2012-12-13 08:37:10
- !broken
- @!doesntwork -- Nevik at 2012-12-13 08:33:07
- !subprojects
- So, you want to add git repositories inside of other git repositories? Well, you have four main options. First is to just do it, add the repo to the outer project's .gitignore, and treat them entirely separately. Best if they are entirely seperate. Otherwise your best options are "!submodule" "!gitslave" and "!subtree" Try those commands in this channel, or in a PM to avoid flooding -- Nevik at 2012-12-11 22:41:49
- !next
- Another satisfied customer. NEXT! -- bremner at 2012-12-10 15:42:53
- !fetchfour
- Never use the four-word version of git-fetch or git-pull (e.g. git fetch <remote> <refspec>). It always ends in tears. Yes, if you understand the implications of FETCH_HEAD it can technically be done, but really it is easier to just fetch the whole remote (or perhaps edit the fetchspec if you never want other bits). If you must, see !fetch4why -- ikke at 2012-12-10 09:49:03
- !dirs
- @!directory -- ikke at 2012-12-04 07:25:44
- !fetch4why
- The four-word version of git-fetch doesn't update remote-tracking branches and tags. It fetches into FETCH_HEAD only; you probably don't want to have to deal with that. Pull in four-word form automatically uses FETCH_HEAD, but your remote-tracking will still be outdated. Even updating them manually with 'git fetch origin master:remotes/origin/master' (clunky) still doesn't update tags. -- jast at 2012-12-03 12:52:23
- !gitpretty
- git pretty is a flowchart of how to get yourself out of trouble http://justinhileman.info/article/git-pretty/ -- nevyn at 2012-11-30 01:28:55
- !compile
- @!packaged -- EugeneKay at 2012-11-29 18:37:56
- !workflows
- @!workflow -- Nevik at 2012-11-29 13:33:43
- !subprojects
- So, you want to add git repositories inside of other git repositories? Well, you have four main options. First is to just do it, add the repo to the outer project's .gitignore, and treat them entirely separately. Best if they are entirely seperate. Otherwise your best options are "!submodule" "!gitslave" and "!subtree" Try typing those commands into this IRC channel or in a PM if you -- ikke at 2012-11-29 10:46:54
- !complex
- @!simple -- ikke at 2012-11-29 10:39:36
- !books
- @!book -- ikke at 2012-11-20 07:56:45
- !books
- @book -- ikke at 2012-11-20 07:56:34
- !unique
- @!snowflake -- EugeneKay at 2012-11-14 15:41:25
- !ff
- A fast-forward merge occurs when you merge a commit which is a descendant of !HEAD. No new commit is created, instead the branch is simply moved forward. See http://sandofsky.com/images/fast_forward.pdf -- ikke at 2012-11-12 20:52:02
- !ff
- A fast-forward merge occurs when you merge a commit which is a descendant of !HEAD. No new commit is created, instead the branch is simply moved forward. See http://sandofsky.com/images/fast_forward.pdf. -- ikke at 2012-11-12 20:51:59
- !host_gui
- If you want to mange your hosted git repos through a web GUI, you have a few options: !gitlab !gitorious !rhode_code and !gerrit. Keep in mind that all of these are less flexible and more resource-intensive than !gitolite -- ikke at 2012-11-06 11:55:18
- !host_gui
- If you want to mange your hosted git repos through a web GUI, you have a few options: !gitlab !gitorious !rode_code and !gerrit. Keep in mind that all of these are less flexible and more resource-intensive than !gitolite -- ikke at 2012-11-06 11:52:59
- !github_free
- @!host_gui -- EugeneKay at 2012-11-06 11:50:39
- !rhode_code
- Open source SCM tool that has git support: http://rhodecode.org/ -- ikke at 2012-11-06 11:50:08
- !rhode_code
- Open source SCM tool that has git support: \http://rhodecode.org/ -- ikke at 2012-11-06 11:49:41
- !rhode_code
- http://rhodecode.org/ -- ikke at 2012-11-06 11:48:55
- !host_gui
- If you want to mange your hosted git repos through a web GUI, you have a few options: !gitlab !gitorious and !gerrit. Keep in mind that all of these are less flexible and more resource-intensive than !gitolite -- EugeneKay at 2012-11-06 11:48:37
- !case_mapping
- Git tries its best if you are on a filesystem which does not understand the difference between upper case and lower case, but there are many circumstances, especially when there are two files which only differ by case, that git just cannot cope. Windows and Mac users are especially likely to have such problems. Solution, move to a real filesystem or OS and investigate git-config's core.ignorecase -- SethRobertson at 2012-11-04 23:45:13
- !case_mapping
- rstand the difference between upper case and lower case, but there are many circumstances, especially when there are two files which only differ by case, that git just cannot cope. Windows and Mac users are especially likely to have such problems. Solution, move to a real filesystem or OS and investigate git-config's core.ignorecase -- SethRobertson at 2012-11-04 23:44:26
- !case_mapping
- Git tries its best if you are on a filesystem which does not understand the difference between upper case and lower case, but there are many circumstances, especially when there are two files which only differ by case, that git just cannot cope. Windows and Mac users are especially likely to have such problems. Solution, move to a real filesystem or OS. -- SethRobertson at 2012-11-04 23:42:25
- !mailing_list
- The mailing list can be reached via git@vger.kernel.org -- ikke at 2012-10-31 12:32:39
- !excellence
- We are what we repeatedly do. Excellence, then, is not an act, but a habit. (Aristotle) -- frogonwheels at 2012-10-30 03:33:23
- !tig
- https://git.wiki.kernel.org/index.php/Tig - An ncurses (terminal) alternative to gitk. -- FauxFaux at 2012-10-29 12:49:28
- !botsnack
- Om nom nom -- EugeneKay at 2012-10-29 12:19:16
- !reply_time
- I only respond to !ECHO-REQUEST -- EugeneKay at 2012-10-29 12:14:31
- !ping
- I only respond to !reply_time -- EugeneKay at 2012-10-29 12:14:20
- !ssh
- Please use SSH to talk to remote repos. http:// and git:// are completely unsecured and http:// suffers from smart webservers trying to implement policy. You can try to do "smart" https://, but it can be troublesome to configure if you do not know how (see !web_repos for simple instructions) unless your company implements a MITM attack and prevents end-to-end crypto. -- SethRobertson at 2012-10-29 01:18:11
- !github
- Feel free to ask us about Github-specific features (Forks, Pull Requests, Wikis, etc), but there are no guarantees. There is a #github channel, however it is normally pretty stagnant. -- EugeneKay at 2012-10-26 19:53:11
- !vampire
- Please don't be a help vampire - we're here to point you in the right direction, not type out the commands verbatim for you. http://slash7.com/2006/12/22/vampires/ -- EugeneKay at 2012-10-25 23:01:46
- !repro
- Please paste (using https://gist.github.com/ or similar) a transcript (https://gist.github.com/2415442) of your terminal session. This will help immensely with troubleshooting. -- EugeneKay at 2012-10-25 20:59:48
- !botcmd
- I can't answer that with a bot command, could you please rephrase the question? -- FauxFaux at 2012-10-23 13:00:12
- !revert
- "Revert" is a heavily overloaded term -- Do you mean: a) make a commit that "undoes" the effects of an earlier commit [man git-revert]; b) discard uncommitted changes in the working tree [git reset --hard]; c) undo committing [git reset --soft HEAD^]; d) restore staged versions of files [git checkout -p]; e) move the current branch to a different point(possibly losing commits)[git reset --hard $COMMIT]? -- EugeneKay at 2012-10-22 23:21:06
- !glhi
- Welcome to #gitolite, a place not as full as #git but still helpful enough. If you have a question, feel free to just go ahead and ask—somebody should answer shortly. Type /topic for more info. You never know, it might even be helpful today! -- sitaram at 2012-10-19 10:01:11
- !glhi
- Welcome to #gitolite, a place not as full as #git but still helpful enough. If you have a question, feel free to just go ahead and ask—somebody should answer shortly. Type /topic for more info also -- sitaram at 2012-10-19 10:00:30
- !source
- The official source code for git can be found at: git://git.kernel.org/pub/scm/git/git.git or Github's mirror: https://github.com/git/git -- EugeneKay at 2012-10-17 20:38:24
- !broken
- !doesntwork -- EugeneKay at 2012-10-15 02:09:37
- !mr
- a tool to manage Multiple Repositories, see http://joeyh.name/code/mr/ -- RichiH at 2012-10-09 22:43:15
- !merge_selective
- git does not support merging only certain files - it is all or nothing. To fake it, use 'git merge --no-commit', !unstage the files/dirs you don't want merged, then commit. -- eugenekay at 2012-10-09 07:51:15
- !merge_selective
- git does not support merging only certain files - it is all or nothing. You can use --no-commit and then 'git reset -- foo/ bar/' all files/dirs you do not want to merge to fake this behaviour. -- EugeneKay at 2012-10-09 07:48:07
- !upstream
- Do you want to set the remote branch which is being tracked(!set_upstream), list what remote branches are being tracked(!show_upstream), or incorporate changes from another repo which is not your "origin"(!pull_upstream) ? -- EugeneKay at 2012-10-01 03:54:56
- !show_upstream
- To get a listing of what your local branches have set as their "upstream", run: git branch -avv -- EugeneKay at 2012-10-01 03:53:01
- !resets
- tl;dr of man git-reset: --soft moves HEAD, --mixed moves HEAD+index, --hard moves HEAD+index+work-tree, -- foo.txt will !unstage -- EugeneKay at 2012-09-27 08:26:05
- !spoon
- @!read -- EugeneKay at 2012-09-23 06:23:54
- !repo
- Repo is a tool produced by Google for the AOSP project(and others) which wraps git and provides its own set of commands. While it is possible to use git with repositories that are managed by repo, it is not always easy. http://source.android.com/source/version-control.html -- EugeneKay at 2012-09-23 06:12:12
- !rewriting_public_history
- Rewriting public history is a very bad idea. Anyone else who may have pulled the old history will have to jump through hoops (and you have to tell them to), so it's infinitely better to just move on without rewriting. That said, you can use `git push -f` to force your new history through (may get rejected, though). See http://git-scm.com/docs/git-rebase.html#_recovering_from_upstream_rebase -- jast at 2012-09-20 09:36:11
- !rewriting_public_history
- Rewriting public history is a very bad idea. Anyone else who may have pulled the old history will have to jump through hoops (and you have to tell them to), so it's infinitely better to just move on without rewriting. That said, you can use `git push -f` to force rewriting (the server may reject it, though). See http://git-scm.com/docs/git-rebase.html#_recovering_from_upstream_rebase -- jast at 2012-09-20 09:34:42
- !rewriting_public_history
- Rewriting public history is a very bad idea. Anyone else who may have pulled the old history will have to `git pull --rebase` and even worse things if they have tagged or branched, so you must publish your humiliation so they know what to do. You will need to `git push -f` to force the push. The server may not allow this. See receive.denyNonFastForwards (git-config) -- jast at 2012-09-20 09:31:49
- !gremlins
- @!weasels -- EugeneKay at 2012-09-19 06:16:44
- !lol
- A nifty view of branches, tags, and other refs: git log --oneline --graph --decorate --all -- EugeneKay at 2012-09-17 05:48:39
- !ignore_dir
- Git doesn't track directories, so you can't ignore them. If you want them ignored, ignore the files in the directory. Matching a directory in .gitignore means you ignore all files in that directory -- ikke at 2012-09-13 22:40:12
- !ignore_dir
- Git doesn't track directories, so you can't ignore them. If you want them ignored, ignore the files in the directory -- ikke at 2012-09-13 22:36:03
- !HEAD
- HEAD is a 'pointer' to the currently checked out branch (or commit, if HEAD is !detached). In bare repositories it serves a different function: it tells clients which branch to checkout initially after cloning. HEAD is *not* something that exists separately for every branch; that's a common misunderstanding. It also is *not* the newest commit in the repo (which is hard to define in a DVCS anyway) -- charon at 2012-09-13 09:34:59
- !dumb
- you appear to be using the WebDAV-based HTTP transport mechanism for git. Please note that it's slow, inefficient and error-prone, and you should definitely consider using the SSH transport or the new CGI-based HTTP transport instead (man git-http-backend for details). -- jast at 2012-09-13 09:03:37
- !bitbucket
- Bitbucket is a code-hosting website for both public and private projects similar to github (except bitbucket offers private repos for free). See https://bitbucket.org/ -- PerlJam at 2012-09-12 17:53:58
- !bitbucket
- foo -- PerlJam at 2012-09-12 17:51:33
- !host_gui
- If you want to mange your hosted git repos through a web GUI, you have a few options: !gitlab !gitorious and !gerrit are the big ones. There's also !bitbucket. Keep in mind that all of these are less flexible and more resource-intensive than !gitolite -- PerlJam at 2012-09-12 17:34:46
- !host_gui
- If you want to mange your hosted git repos through a web GUI, you have a few options: !gitlab !gitorious and !gerrit are the big ones. Keep in mind that all of these are less flexible and more resource-intensive than !gitolite -- PerlJam at 2012-09-12 17:34:09
- !smudge
- @!filters -- EugeneKay at 2012-09-12 06:40:33
- !filters
- Filters can be very useful for automatically making changes to files at checkout(smudge) and checkin/add(clean). See 'man gitattributes' for more information -- EugeneKay at 2012-09-12 06:40:26
- !github_edu
- @!github_free -- EugeneKay at 2012-09-12 02:51:18
- !github_free
- github offers free accounts for nonprofit & education users. https://github.com/nonprofit and https://github.com/edu -- EugeneKay at 2012-09-12 02:51:11
- !mv
- @!rename -- EugeneKay at 2012-09-10 22:12:17
- !move
- @!rename -- EugeneKay at 2012-09-10 22:12:11
- !rename
- git does not support explicitly file renaming - the 'git mv' command is shorthand for 'git rm; mv; git add'. All "rename" statistics are generated at runtime when examining history with git-log. See the -M option in the git-log manpage for more info -- EugeneKay at 2012-09-10 22:12:04
- !what
- wat -- EugeneKay at 2012-09-08 00:23:18
- !capistrano
- capistrano is an application deployment tool in ruby, which has support for git, see http://github.com/capistrano/capistrano for more information -- cmn at 2012-09-06 13:10:12
- !capistrano
- capistrano is an application deployment tool in ruby, which has support for git, see http://capistranorb.com for more information -- cmn at 2012-09-06 13:01:25
- !capistrano
- capistrano is an application deployment tool in ruby, which has support for git -- cmn at 2012-09-06 12:57:50
- !gitosis
- gitosis is no longer maintained and supported by the author; we usually recommend gitolite instead which has much better documentation and more features: http://github.com/sitaramc/gitolite -- if you're already stuck with gitosis we'll try to help, but no promises! -- jast at 2012-08-31 16:33:40
- !reset
- A good resource explaining git-reset is http://git-scm.com/2011/07/11/reset.html -- EugeneKay at 2012-08-31 09:13:41
- !subtree_alternatives
- @!subtree_alt -- EugeneKay at 2012-08-31 09:12:21
- !subtree
- The subtree merge method is great for incorporating a subsidiary git repo into your current one with "unified" history. Read http://git-scm.com/book/en/Git-Tools-Subtree-Merging for more info, or try one of the !subtree_alternatives -- EugeneKay at 2012-08-31 09:12:13
- !urdoinitrong
- @!xy -- EugeneKay at 2012-08-30 06:27:23
- !dotfiles
- There are various issues associated with keeping dot-files in git (permissions, avoiding having a .git in ~/ or /). One attempt to manage this is http://dotfiles.github.com/ -- frogonwheels at 2012-08-30 02:55:25
- !resume
- Git does not yet support resuming, torrenting, or parallel fetching of clones or other network traffic. You can make a single file out of a repo using 'git bundle' then use normal resumable download methods to get that file. See https://bundler.caurea.org. Also !gitolite can be told to maintain and send bundles using rsync; see https://github.com/sitaramc/gitolite/blob/master/src/commands/rsync -- sitaram at 2012-08-28 09:11:37
- !resume
- Git does not yet support resuming, torrenting, or parallel fetching of clones or other network traffic. You can make single file out of a repo using 'git bundle' then use normal resumable download methods to get that file. See https://bundler.caurea.org. Also !gitolite can be told to maintain and send bundles using rsync; see https://github.com/sitaramc/gitolite/blob/master/src/commands/rsync -- sitaram at 2012-08-28 09:10:50
- !dropbox
- Storing git repositories on DropBox is a Very Bad Idea™. Use a free hosting service (such as Bitbucket or GitHub), or read !dropbox_why if you insist upon having your repo corrupted. -- cmn at 2012-08-26 19:50:08
- !dropbox_why
- git uses a lot of frequently-changed small files, which dropbox's synchronization algorithms barf on. Use of multiple dropbox clients compounds this, with hilarious results -- EugeneKay at 2012-08-26 19:42:29
- !configfiles
- It is recommended to store local configuration data in a file which is not tracked by git, but certain deployment scenarios(such as Heroku) may require otherwise. See https://gist.github.com/1423106 for some ideas -- EugeneKay at 2012-08-26 08:41:13
- !msysgit
- Git for Windows, formerly referred to as msysgit, is available at http://git-scm.com/downloads -- EugeneKay at 2012-08-25 05:50:20
- !configfiles
- the recommended way is to modify your application so that tracked/untracked config are stored in different files. See https://gist.github.com/1423106 for some approaches -- canton7 at 2012-08-24 16:10:57
- !refs
- @!treeish -- EugeneKay at 2012-08-22 21:52:51
- !unlearn
- Users of centralized VCSes will need to unlearn a number of habits in order to learn git. Many commands, such as "checkout" and "revert" bear little in common to those holding the same name in other systems. -- EugeneKay at 2012-08-22 21:26:28
- !fast_forward
- @!ff -- EugeneKay at 2012-08-22 08:48:57
- !ECHO-REQUEST
- I only respond to !ping -- ikke at 2012-08-22 08:43:11
- !pull-all
- @!pull_all -- charon at 2012-08-21 09:10:41
- !pull_all
- 'pull --all' is a nonsensical request. It will invoke 'fetch --all' (which you should use instead) but it will *not* merge (see !pull) all branches that have an upstream, or anything of the sort. -- charon at 2012-08-21 09:10:20
- !ff
- A fast-forward merge occurs when you merge a commit which is a descendant of !HEAD. No new commit is created, instead the branch is simply moved forward. -- cmn at 2012-08-17 20:14:15
- !ff
- A fast-forward merge occurs when you merge a !treeish which is a direct descendant of your current !HEAD. No new commit is created, instead the pointer is simply moved forward. -- EugeneKay at 2012-08-17 20:04:09
- !karma
- This channel tracks karma based on who has gotten lots of thanks for being helpful. If you want to help someone reach karmic nirvana, please mention their name when thanking them. Try ".karma <nick>" or ".topkarma", but please do it via private message to avoid mass highlighting people. -- jast at 2012-08-16 20:29:44
- !HEAD
- HEAD is a 'pointer' to the currently checked out branch (or commit, if HEAD is !detached). In bare repositories it serves a different function: it tells clients which branch to checkout initially after cloning. HEAD is *not* something that exists separately for every branch; that's a common misunderstanding. -- jast at 2012-08-16 20:24:49
- !configfiles
- Best practice is to store an example config file and then copy+modify it when you install your app. If your config file must be tracked by git to deploy(eg, Heroku), see https://gist.github.com/1423106 for some workarounds -- EugeneKay at 2012-08-14 21:48:24
- !revert
- "Revert" is a heavily overloaded term. Do you mean: a) make a commit that "undoes" the effects of an earlier commit [man git-revert]; b) discard the uncommitted changes in the working tree [no turning back: git reset --hard]; c) undo committing [git reset --soft HEAD^, but type !rewriting_public_history]; d) restore staged versions of files [git checkout -p]? -- jast at 2012-08-14 19:38:08
- !revert
- "Revert" is a heavily overloaded term. Do you mean: a) make a commit that "undoes" the effects of an earlier commit [man git-revert]; b) discard the uncommitted changes in the working tree [no turning back: git reset --hard]; c) undo committing [git reset --soft HEAD^, but type !rewriting_public_history] ; d) restore staged versions of files [git checkout -p]? -- jast at 2012-08-14 19:37:58
- !revert
- "Revert" is a heavily overloaded term. Do you mean: a) make a commit that "undoes" the effects of an earlier commit [man git-revert]; b) discard the uncommitted changes in the working tree [no turning back: git reset --hard]; c) undo committing [git reset --soft HEAD^, but type !rewriting_public_history] ? -- jast at 2012-08-14 19:35:51
- !unstage
- To unstage a file from the index(in other words, to undo an accidental `git add foo/bar.txt`), use: git reset foo/bar.txt -- EugeneKay at 2012-08-13 08:23:11
- !fetch4why
- Firstly, the four-word version of git-fetch does not update the remote-tracking branches or tags. The default git fetch origin master fetches into FETCH_HEAD - ie the equivalent of git fetch origin master:FETCH_HEAD. If you use pull in this case, it will then do the equivalent of git merge FETCH_HEAD. Even updating the remote tracking branch with git fetch origin master:remotes/origin/master it still doesn't update tags -- frogonwheels at 2012-08-10 10:40:32
- !fetch4why
- Firstly, the four-word version of git-fetch does not update the remote-tracking branches or tags. The default git fetch origin master fetches into FETCH_HEAD - ie the equivalent of git fetch origin master:FETCH_HEAD. If you use pull in this case, it will then do the equivalent of git merge FETCH_HEAD. Even updating the remote tracking branch with git fetch origin master:remotes/origin/master it still doesmn update the -- frogonwheels at 2012-08-10 10:40:21
- !fetchfour
- Never use the four-word version of git-fetch or git-pull (e.g. git fetch remote refspec). It always ends in tears. Yes, if you understand the implications of FETCH_HEAD it can technically be done, but really it is easier to just fetch the whole remote (or perhaps edit the fetchspec if you never want other bits). If you must, see !fetch4why -- frogonwheels at 2012-08-10 10:37:47
- !fetch4why
- Firstly, the four-word version of git-fetch does not update the remote-tracking branches or tags. The default git fetch origin master fetches into FETCH_HEAD - ie the equivalent of git fetch origin master:FETCH_HEAD. If you use pull in this case, it will then do the equivalent of git merge FETCH_HEAD. Even if you fetch into the remote tracking branch using git fetch origin master:remotes/origin/master it still does NOT -- frogonwheels at 2012-08-10 10:37:15
- !goal
- @!xy -- EugeneKay at 2012-08-10 00:24:22
- !wrong
- @!xy -- EugeneKay at 2012-08-10 00:24:18
- !doinitrong
- @!xy -- EugeneKay at 2012-08-10 00:24:15
- !doinitrong
- xy -- EugeneKay at 2012-08-10 00:23:40
- !xy
- This sounds like an "XY Problem" http://mywiki.wooledge.org/XyProblem So let's step back for a minute. What are you actually trying to achieve? Why are you doing it this way? -- frogonwheels at 2012-08-10 00:21:38
- !xy
- You may have an "XY Problem", which is when you need to do X and you think you can use Y to do X, so ask about Y. see also !doinitrong and http://mywiki.wooledge.org/XyProblem -- frogonwheels at 2012-08-09 01:54:17
- !xy
- You may have an "XY Problem", which is when you need to do X and you think you can use Y to do X, so ask about Y. see also !doinitrong -- frogonwheels at 2012-08-09 01:52:01
- !github_flow
- This is the workflow followed by github: http://scottchacon.com/2011/08/31/github-flow.html -- ikke at 2012-08-07 06:45:09
- !includes
- git v1.7.10 added support for including other config files via the include.path variable. See the "Includes" section of man git-config for more info -- EugeneKay at 2012-08-06 19:42:28
- !documents
- @!office -- EugeneKay at 2012-08-06 04:42:20
- !office
- Microsoft Office documents(and related formats) are not stored well by git(see !binary). The Open/LibreOffice suites support saving as an uncompressed "Flat XML" file which helps alleviate this problem. -- EugeneKay at 2012-08-06 04:42:15
- !fsck
- @!profanity -- EugeneKay at 2012-08-03 23:42:03
- !media
- !annex -- EugeneKay at 2012-08-03 23:34:50
- !annex
- git-annex and git-media are two solutions to the !binary problem. They work by keeping the blobs outside of the repo, storing a reference to the blob in the repo instead. See http://git-annex.branchable.com/ and https://github.com/schacon/git-media -- EugeneKay at 2012-08-03 23:34:39
- !balloon
- @!binary -- EugeneKay at 2012-08-03 23:32:13
- !binary
- Storing binary files in git causes repo balloon, because they do not compress/diff well. In other words, each time you change a file the repo will grow by the size of the file. See !annex for some solutions -- EugeneKay at 2012-08-03 23:32:06
- !bacon
- @!botsnack -- EugeneKay at 2012-07-30 08:12:17
- !packaged
- Unless you have a specific technical need for the "latest and greatest" you should go with a packaged version. Compiling and installing your own is not something that we will walk you through or troubleshoot (though it *is* fairly easy for developers with GNU/Linux experience). -- jast at 2012-07-30 08:07:37
- !privmsg
- You can get gitinfo keyword expansion (e.g. !doc or this one) sent directly to you by sending a private message to me: /msg gitinfo !doc. This avoids spamming the channel. Also see http://jk.gs/git/bot/trigger.php -- jast at 2012-07-30 08:06:24
- !reset_demystified
- @!reset -- jast at 2012-07-30 08:04:33
- !reset_demystified
- @!reset_demistified -- jast at 2012-07-30 08:03:47
- !situation
- Please pastebin the relevant output of `git log -n 20 --all --graph --format="%h %p %d"` to give us an idea about what your situation is (increase the -n argument if your problem is more complex than 20 commits can explain) -- jast at 2012-07-30 08:01:18
- !tools
- See https://git.wiki.kernel.org/index.php/InterfacesFrontendsAndTools for information about known interfaces, frontends, and tools. -- jast at 2012-07-30 07:59:36
- !upstream
- Do you want to set the remote branch which a branch tracks (!set_upstream) or incorporate changes from a repo which is not marked as being "upstream" of your current branch (!pull_upstream)? -- jast at 2012-07-30 07:57:44
- !version
- The current version of git is listed in the /topic of #git (out of date? Say '.version' in the channel). Don't be scared if you're using a slightly older version -- they interoperate just fine, though you may be missing a few features. Unless you have a specific need for the newest version, it's best to stick with premade packages. -- jast at 2012-07-30 07:55:43
- !version
- The current version of git is listed in the /topic of #git (out of date? /msg gitinfo .version). Don't be scared if you're using a slightly older version -- they interoperate just fine, though you may be missing a few features. Unless you have a specific need for the newest version, it's best to stick with premade packages. -- jast at 2012-07-30 07:54:41
- !upstream
- Do you want to set the remote branch which a branch tracks(!set_upstream) or incorporate changes from a repo which is not marked as being "upstream" of your current branch(!pull_upstream) ? -- EugeneKay at 2012-07-27 21:52:00
- !pull_upstream
- To pull changes from an "upstream" repository(or any other repo that is not "origin") into your repo, use: git remote add upstream $URL; git fetch upstream; git merge upstream/$BRANCH -- EugeneKay at 2012-07-27 21:50:31
- !flexible
- git's status as a Distributed VCS really means that it is flexible - you can build any layout of repos you like to suit your !workflow. Here are some diagrams of common ones: http://git-scm.com/about/distributed -- eugenekay at 2012-07-26 20:24:06
- !untrack
- To remove a file from git's tracking, without deleting it from your working tree, `git rm --cached <file>`. Note that any repo which pulls this change will delete their local copy of that file. You can "bring it back" using `git checkout HEAD^ file` -- EugeneKay at 2012-07-26 20:17:06
- !dashes
- Use a double-dash(--) to separate refs or arguments from file paths. This is especially useful when dealing with ambiguous names. Ex: `git checkout origin -- master` will check out the file "master" from branch "origin" -- eugenekay at 2012-07-26 20:06:37
- !eekaconflict
- Merge conflicts are a natural part of collaboration. When facing one, *don't panic*. Read "How to resolve conflicts" in man git-merge. Carefully go through the conflicts. Picking one side verbatim is not always the right choice! -- imachuchu at 2012-07-25 23:32:09
- !layout
- @!flexible -- EugeneKay at 2012-07-25 18:15:44
- !flexible
- git's status as a Distributed VCS really means that it is flexible - you can build any layout of repos you like to suit your !workflow. Here are some diagrams of common ones: http://git-scm.com/about#distributed -- EugeneKay at 2012-07-25 18:15:32
- !filter_branch_args
- You almost always want to use `--tag-name-filter cat -- --all` at the end of your `git fitler-branch` command line to cause all normal refs to be rewritten. -- SethRobertson at 2012-07-24 02:56:52
- !rip
- R.I.P. Tree-Eating Monster! Shrine at: http://web.archive.org/web/20110721212614/http://www.git-scm.com/ -- jast at 2012-07-23 20:56:14
- !remote_tracking_branch
- Remote-tracking branches (branches which start with e.g. 'origin/') are local records of the states of the corresponding remote branches. They're updated by 'git fetch'. You can't edit them directly (trying to check them out results in a detached HEAD), but you can create a new local branch based on a remote-tracking branch using e.g. 'git checkout -b <branch> <remote>/<branch>' -- canton7 at 2012-07-23 19:00:28
- !local_branch_from_remote
- The following commands are all equivalent, assuming <branch> doesn't yet exist: 'git checkout -b <branch> <remote>/<branch>', 'git checkout -t <remote>/<branch>', 'git checkout <branch>'. The latter invokes some magic. -- canton7 at 2012-07-23 19:00:23
- !ssh_github
- If you are having problems accessing github repos over HTTPS you should switch to SSH (the default used by git, for many very good technical reasons): https://help.github.com/articles/generating-ssh-keys -- canton7 at 2012-07-23 12:37:36
- !fish
- In the long run, it is much better to give pointers to answers than the answers themselves. -- sitaram at 2012-07-20 15:49:57
- !fish
- In the long long, it is much better to give pointers to answers than the answers themselves. -- sitaram at 2012-07-20 15:49:49
- !nom
- @!botsnack -- EugeneKay at 2012-07-19 18:03:27
- !conflict
- @!eekaconflict -- charon at 2012-07-18 17:32:54
- !conflict
- !eekaconflict -- charon at 2012-07-18 17:32:15
- !eekaconflict
- Merge conflicts are a natural part of collaboration. When facing one, *stay calm*. Read "How to resolve conflicts" in man git-merge. Carefully go through the conflicts. Picking one side verbatim is not always the right choice! -- charon at 2012-07-18 17:26:10
- !sausage_making
- Some developers like to "hide the sausage making", transforming their commits before presenting them to the outside world. See http://sethrobertson.github.com/GitBestPractices/#sausage and !perfect -- eugenekay at 2012-07-17 19:07:31
- !sausage_making
- Some developers like to "hide the sausage making?, transforming their commits presenting them to the outside world. See http://sethrobertson.github.com/GitBestPractices/#sausage and !perfect -- eugenekay at 2012-07-17 19:06:59
- !sha1
- You shouldn't worry about collisions of object hashes as an attack vector against git. There is a higher probability that every member of your programming team will be eaten by wolves in unrelated incidents on the same night than a meaningful malicious collision will be constructed without the aid of the NSA. -- eugenekay at 2012-07-16 15:43:34
- !sha1
- You shouldn't worry about collisions of object hashes as an attack vector against git. There is a higher probability that every member of your programming team will be eaten by wolves in unrelated incidents on the same night than a meaningful malicious collision is being constructed without the aid of the NSA. -- EugeneKay at 2012-07-16 15:41:45
- !local_branch_from_remote
- the following commands are all equivalent, assuming <branch> doesn't yet exist: 'git checkout -b <branch> <remote>/<branch>', 'git checkout -t <remote>/<branch>', 'git checkout <branch>'. The latter invokes some magic. -- canton7 at 2012-07-12 16:00:10
- !remote_tracking_branch
- remote-tracking branches (branches which start with e.g. 'origin/') are local records of the states of the corresponding remote branches. They're updated by 'git fetch'. You can't edit them directly (trying to check them out results in a detached HEAD), but you can create a new local branch based on a remote-tracking branch using e.g. 'git checkout -b <branch> <remote>/<branch>' -- canton7 at 2012-07-12 15:55:45
- !refund
- If you are not satisfied with git, or the support provided by the volunteers in #git, you are entitled to a full refund of the purchase price, and are invited to use another VCS. Elsewhere. -- canton7 at 2012-07-11 17:33:53
- !refund
- If you are not satisfied with git, or the support provided in #git, you are entitled to a full refund of the purchase price, and are invited to use another VCS. Elsewhere. -- EugeneKay at 2012-07-10 20:08:07
- !ssh_github
- If you are having problems accessing github repos over HTTPS you should switch to SSH(the default used by git, for many very good technical reasons): https://help.github.com/articles/generating-ssh-keys -- EugeneKay at 2012-07-10 06:50:50
- !ssh_github
- If you are having problems with accessing github repos over HTTPS you should switch to accessing repos over SSH, which is the git default(for many good technical reasons): https://help.github.com/articles/generating-ssh-keys -- EugeneKay at 2012-07-10 06:49:33
- !doinitrong
- It sounds like you're approaching this problem in a way that probably won't work very well. Let's step back for a minute - What are you actually trying to achieve? Why are you trying to do it this way? -- jast at 2012-07-09 18:59:10
- !cuz
- @!why -- EugeneKay at 2012-07-04 21:28:52
- !beer
- Beer! It's what's for dinner! -- EugeneKay at 2012-07-03 07:01:44
- !deploy
- Git is not a deployment tool. You can build one around it for simple environments. http://sitaramc.github.com/the-list-and-irc/deploy.html -- frogonwheels at 2012-07-03 06:35:39
- !deploy
- Git is not a deployment tool, you have been warned! It can, however, be used as one for simple environments. http://sitaramc.github.com/the-list-and-irc/deploy.html -- frogonwheels at 2012-07-03 06:28:11
- !logs
- @!irclog -- jast at 2012-07-02 21:55:10
- !unsafe
- @!disclaimer -- jast at 2012-07-02 18:39:25
- !no_branch
- @!detached -- EugeneKay at 2012-06-30 20:55:16
- !detached
- A detached HEAD(aka "no branch") occurs when your HEAD does not point at a branch. New commits will NOT be added to any branch, and can easily be !lost. This can happen if you a) check out a tag, remote tracking branch, or SHA; or b) if you are in a submodule; or you are in the middle of a c) am or d) rebase that is stuck/conflicted. See !reattach -- EugeneKay at 2012-06-30 20:54:41
- !book
- There are several good books available about git; 'Pro Git' is probably the best: http://git-scm.com/book but also look at !bottomup !cs !gcs !designers !gitt !vcbe and !parable -- sitaram at 2012-06-30 07:05:32
- !zombie
- Brainzz! More brainzzzz! For information about detached heads, see !detached -- frogonwheels at 2012-06-29 02:46:53
- !simple
- At its heart git is made up of many concepts that are individually simple. Getting the whole picture right is often tricky, and it is usually about breaking up the complex concept into its simple, individual parts and grokking those. Both !bottomup and !cs will help with that. -- frogonwheels at 2012-06-29 02:35:27
- !simple
- At its heart, git is made up of many concepts that are individually simple. Getting the whole picture right is often tricky, and it is usually about breaking up the complex concept into its simple, individual parts and grokking those. Both !bottomup and !cs will help with that. -- frogonwheels at 2012-06-29 02:33:32
- !big_repos
- @!large_repos -- EugeneKay at 2012-06-28 18:31:08
- !sparse_checkout
- Sparse checkout can be used to restrict which files/folders are updated with all checkout and status operations. It cannot change the tree the checkout is rooted from. See man git-read-tree -- frogonwheels at 2012-06-26 23:30:02
- !ssh
- Please use SSH to talk to remote repos. http:// and git:// are completely unsecured. You can try to do "smart" https://, but it is troublesome to configure(web server/cgi authentication mechanisms, ACLs, etc) and use(client CA certificates, firewalling, protocol inefficiency) -- EugeneKay at 2012-06-26 21:14:57
- !simple
- At it's heart, git is made up of many concepts that are individually simple. Getting the whole picture right is often tricky, and it's usually about breaking up the complex concept into its simple, individual parts and grokking those. -- ikke at 2012-06-26 08:21:09
- !cs
- "Git for Computer Scientists" is a quick introduction to git internals for people who are not scared by phrases like Directed Acyclic Graph. http://eagain.net/articles/git-for-computer-scientists/ See also !concepts !bottomup -- EugeneKay at 2012-06-24 01:54:14
- !cs
- "Git for Computer Scientists" is a quick introduction to git internals for people who are not scared by phrases like Directed Acyclic Graph. http://eagain.net/articles/git-for-computer-scientists/ See also !concepts -- EugeneKay at 2012-06-24 01:53:23
- !gcs
- @!concepts -- EugeneKay at 2012-06-24 01:52:13
- !cs
- "Git for Computer Scientists" is a quick introudction to git internals for people who are not scared of phrases like Directed Acyclic Graph. http://eagain.net/articles/git-for-computer-scientists/ -- EugeneKay at 2012-06-24 01:50:53
- !concepts
- "Git Concepts Simplified" explains the basic structures used by git, which is very helpful for understanding its concepts. http://sitaramc.github.com/gcs/ -- EugeneKay at 2012-06-24 01:50:04
- !cs
- "Git Concepts Simplified" explains the basic structures used by git, which is very helpful for understanding its concepts. http://sitaramc.github.com/gcs/ -- sitaram at 2012-06-24 01:42:15
- !packaged
- Unless you have a specific technical need for the "latest and greatest" you should go with a packaged version. Compiling and installing your own is not something that we will walk you through or troubleshoot. -- EugeneKay at 2012-06-23 23:51:42
- !deploy
- Git is not a deployment tool, but you can build one around it for simple environments. http://sitaramc.github.com/the-list-and-irc/deploy.html -- EugeneKay at 2012-06-23 19:32:34
- !file_url
- Cloning via a local filesystem path, including /home/user/foo, does not run most of the clone code, so won't detect many clone problems. You must try cloning via file:///home/user/foo. This behaves very differently from the local path. *Must*. -- FauxFaux at 2012-06-22 16:39:40
- !gcs
- http://sitaramc.github.com/gcs/ -- FauxFaux at 2012-06-21 17:00:33
- !read
- Don't expect everything to be spoon fed to you - the man pages and other documents do not bite, you need to spend some time and effort reading them. -- EugeneKay at 2012-06-21 15:02:52
- !sts
- @!gitolite_ssh -- FauxFaux at 2012-06-19 17:20:52
- !goal
- @!doinitrong -- EugeneKay at 2012-06-18 16:10:48
- !sausage_making
- Some developers like to hide the sausage making (pretend to the outside world that their commits sprung full-formed in utter perfection into their git repository). `git rebase -i`, `git add -p`, and `git reset -p` can fix commits up in post-production by splitting different concepts, merging fixes to older commits, etc. See also http://sethrobertson.github.com/GitBestPractices/#sausage and !perfect for how. -- frogonwheels at 2012-06-16 02:39:03
- !yup
- Yurp. -- EugeneKay at 2012-06-14 06:45:27
- !gitolite_ssh
- See http://sitaramc.github.com/gitolite/sts.html for steps to troubleshoot ssh/gitolite. See http://sitaramc.github.com/gitolite/glssh.html for how a single "real" userid can play host to multiple "virtual" users using ssh keys. -- sitaram at 2012-06-14 06:37:59
- !devchan
- this channel is for discussions about git development only. If you have questions about using git, please visit #git instead. Thanks! -- jast at 2012-06-12 13:02:18
- !gitpaste
- @!paste -- EugeneKay at 2012-06-09 20:57:00
- !pastebin
- @!paste -- EugeneKay at 2012-06-09 20:56:52
- !paste
- Please paste snippets longer than one line at a pastebin site, such as https://gist.github.com/ rather than in-channel. -- EugeneKay at 2012-06-09 20:56:44
- !enter
- The enter key is not a punctuation mark. Please use fewer lines, with complete sentences on them. -- EugeneKay at 2012-06-07 02:20:23
- !treeish
- A tree-ish is something that looks like a tree. Read 'man gitrevisions' and http://git-scm.com/book/en/Git-Tools-Revision-Selection -- EugeneKay at 2012-06-07 02:17:42
- !simple
- At it's heart, git is made up of many concepts that are individually simple. Getting the whole picture right is often tricky, and it's usually about breaking up the complex concept into its simple, individual parts and groking those. -- frogonwheels at 2012-05-31 05:26:52
- !simple
- At it's heart, git is made up of many concepts that are individually simple. Getting the whole picture right is often tricky, and it's often about breaking up the complex concept into its simple, individual parts and groking those. -- frogonwheels at 2012-05-31 05:26:33
- !karma
- This channel tracks karma based on who has gotten lots of thanks for being helpful. If you want to help someone reach karmic nirvana, please mention their name when thanking them. -- jast at 2012-05-30 14:49:00
- !host_gui
- If you want to mange your hosted git repos through a web GUI, you have a few options: !gitlab !gitorious and !gerrit are the big ones. Keep in mind that all of these are less flexible and more resource-intensive than !gitolite -- eugenekay at 2012-05-28 18:55:57
- !tias
- Try it and see™. You learn much more by experimentation than by asking without having even tried. If in doubt, make backups before you experiment (see !backup). http://sitaramc.github.com/1-basic-usage/tias.html may help with git-specific TIAS. -- jast at 2012-05-22 15:34:16
- !github_cheap
- @!host_gui -- EugeneKay at 2012-05-21 07:22:17
- !schwartzian
- The Schwartzian Criterion of Git Usage: if you don't envision using branching and merging, then git probably isn't the right answer. -- jast at 2012-05-20 17:30:14
- !github_cheap
- @!host_web -- EugeneKay at 2012-05-19 23:08:05
- !gitorious
- Gitorious is a free code-hosting website for open-source projects. The software powering it is also available for you to self-host repos. https://gitorious.org/ -- EugeneKay at 2012-05-19 23:07:08
- !gerrit
- Gerrit is a web-based code review system, built by Google. https://code.google.com/p/gerrit/ -- EugeneKay at 2012-05-19 23:05:56
- !host
- @!gitolite -- EugeneKay at 2012-05-19 23:04:58
- !host_gui
- If you want to manage your hosted repos through a web GUI to manage them, you have a few options: !gitlab !gitorious and !gerrit are the big ones. Keep in mind that all of these are less flexible and more resource-intensive than !gitolite -- EugeneKay at 2012-05-19 23:04:51
- !GIT
- Git is not an acronym. Writing it in all caps is heresy and will be punished by Subversion or SCCS for more grievous offences. It's "git" or "Git". Thank you for your help in making the world a better place. -- jast at 2012-05-19 09:29:51
- !last
- git-last is a script which will give you a GitHub-like view of the current directory(showing the last commiter of each dir/file): http://goo.gl/zb6xi -- EugeneKay at 2012-05-19 03:44:53
- !last
- git-last is a script which will give you a GitHub-like view of the current directory(showing the last author on each dir/file): http://goo.gl/zb6xi -- EugeneKay at 2012-05-19 03:43:53
- !gitlab
- gitlab is a git hosting package(similar to GitHub) built atop !gitolite(though it does not use the fancy ACL magic): http://www.gitlabhq.com/ -- EugeneKay at 2012-05-19 01:55:32
- !head
- @!HEAD -- EugeneKay at 2012-05-19 01:53:17
- !triggers
- Please don't spam me! I'm just a poor bot! Here's everything I know: http://jk.gs/git/bot/trigger.php -- EugeneKay at 2012-05-18 23:20:16
- !thanks
- You're very welcome! -- eugenekay at 2012-05-18 09:04:18
- !ircstats
- @!irclog -- EugeneKay at 2012-05-18 08:35:38
- !irclog
- Public logs of #git are kept at: http://colabti.org/irclogger/irclogger_log/git or look at stats for the last 30 days: http://itvends.com/irc/git.html -- eugenekay at 2012-05-18 08:35:13
- !search
- @!google -- EugeneKay at 2012-05-18 08:01:00
- !google
- You're looking for the .search function. Please be patient, it takes a lil bit to load results. -- EugeneKay at 2012-05-18 08:00:54
- !ssh
- Please use SSH to talk to remote repos. http:// and git:// are completely unsecured. You can try to configure "smart" https:// access, but it is usually much easier to just stick with ssh:// -- EugeneKay at 2012-05-17 18:51:17
- !book
- There are several good books available about git; 'Pro Git' is probably the best: http://git-scm.com/book but also look at !bottomup !cs !designers !gitt !vcbe and !parable -- EugeneKay at 2012-05-16 06:49:16
- !deploy
- Git is not a deployment tool, but you can build one around it for simple environments. Here is an example hook to get you started: http://goo.gl/l68hq -- EugeneKay at 2012-05-16 04:45:28
- !docs
- @!doc -- SethRobertson at 2012-05-15 21:55:08
- !gitflow
- The description of the gitflow branch workflow model is at http://nvie.com/posts/a-successful-git-branching-model/ while a tool to help implement this workflow is at https://github.com/nvie/gitflow See http://sethrobertson.github.com/GitBestPractices/#workflow for other workflow suggestions/references -- canton7 at 2012-05-14 18:25:34
- !blogs
- @!blog -- EugeneKay at 2012-05-14 15:06:33
- !headless
- @!detached -- EugeneKay at 2012-05-14 03:35:27
- !isgitbetter
- We think so, but if you don't, please go away and use $YourFavoriteSystem instead. For a comparison to other VCSes, see http://thkoch2001.github.com/whygitisbetter/ -- EugeneKay at 2012-05-13 16:31:10
- !progit
- @!book -- jast at 2012-05-11 15:57:29
- !doesnotwork
- @!doesntwork -- ikke at 2012-05-08 09:26:45
- !ugfwiini
- @!UGFWIINI -- jast at 2012-05-08 09:07:40
- !non-bare
- @!bare -- EugeneKay at 2012-05-07 04:51:13
- !orphan
- To create an orphaned branch(unrelated to existing history): `git checkout --orphan newbranchname`. This will leave your index/worktree as-is(use `rm .git/index; git clean -dfx` to delete EVERYTHING). If you get 'error: unknown option `orphan`' see !orphan_old. For an empty/null commit see !orphan_null. -- EugeneKay at 2012-05-06 22:52:53
- !orphan_empty
- @!orphan_null -- EugeneKay at 2012-05-06 22:52:04
- !orphan_null
- To create an orphan branch with the null/empty commit, use: `git checkout -b orphan $(echo "empty" | git commit-tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904)` -- EugeneKay at 2012-05-06 22:51:50
- !orphan_old
- If your git is older than 1.7.2, use: `git symbolic-ref HEAD refs/heads/orphan; rm .git/index; git clean -fdx; touch foo; git add foo; git commit -m 'Initial commit on branch orphan'` -- EugeneKay at 2012-05-06 22:48:58
- !orphan
- To create an orphaned branch(unrelated to existing history): `git checkout --orphan newbranchname`. This will leave your index/worktree as-is - use `rm .git/index; git clean -dfx` to delete EVERYTHING). If you get 'error: unknown option `orphan`' see !orphan_old. For an empty/null commit see !orphan_null. -- EugeneKay at 2012-05-06 22:45:29
- !deploy
- Git is not a deployment tool, but you can build one around it for simple environments. Here is an example hook to get you started: https://github.com/EugeneKay/scripts/blob/master/bash/git-deploy-hook.sh -- cmn at 2012-05-01 17:23:38
- !deploy
- Git is not a deployment tool, but you can build one around it for simple environments. Here is an example hook to get you started https://github.com/EugeneKay/scripts/blob/master/bash/git-deploy-hook.sh See also http://toroid.org/ams/git-website-howto -- raek at 2012-05-01 17:20:20
- !deploy
- Git is not a deployment tool, but you can build one around it for simple environments. Here is an example hook to get you started: https://github.com/EugeneKay/scripts/blob/master/bash/git-deploy-hook.sh -- cmn at 2012-05-01 17:19:30
- !github-flow
- http://scottchacon.com/2011/08/31/github-flow.html -- ikke at 2012-04-27 08:53:20
- !github-flow
- PID=$(cat $PIDFILE) -- ikke at 2012-04-27 08:53:08
- !orphan
- To create an orphaned branch(unrelated to existing history): `git checkout --orphan orpanbrname` Note your index will be dirty (`rm .git/index; git clean -dfx` will clean/delete EVERYTHING). To create an orphan branch with the null/empty commit on it, run `git checkout -b emptybranch $(echo "empty" | git commit-tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904)` -- SethRobertson at 2012-04-25 15:02:20
- !filter_sensitive
- You can use filter-branch to remove sensitive data from a repository's history. http://help.github.com/remove-sensitive-data/ -- EugeneKay at 2012-04-23 15:54:40
- !pull4
- @!fetchfour -- SethRobertson at 2012-04-20 23:46:49
- !deploy
- Git is not a deployment tool, but you can build one around it for simple environments. Here is an example hook to get you started https://github.com/EugeneKay/scripts/blob/master/bash/git-deploy.sh See also http://toroid.org/ams/git-website-howto -- SethRobertson at 2012-04-20 23:32:50
- !bare
- an explanation of bare and non-bare repositories (and why pushing to a non-bare one causes problems) can be found here: http://bare-vs-nonbare.gitrecipes.de/ -- jast at 2012-04-20 11:36:09
- !fetchfour
- Never use the four-word version of git-fetch or git-pull (e.g. git fetch remote refspec). It always ends in tears. Yes, if you understand the implications of FETCH_HEAD it can technically be done, but really it is easier to just fetch the whole remote (or perhaps edit the fetchspec if you never want other bits). -- jast at 2012-04-19 21:03:24
- !fetch4
- @!fetchfour -- jast at 2012-04-19 21:01:18
- !directory
- Git does not track directories, only files in directories. Create a nonce file as a placeholder (eg .gitignore) to create the directory or create the directory as part of a post-checkout hook -- SethRobertson at 2012-04-19 01:00:16
- !pullfour
- @!fetchfour -- SethRobertson at 2012-04-19 00:56:44
- !fetchfour
- Never use the four argument version of git-fetch or git-pull. It always ends in tears. Yes, if you understand the implications of FETCH_HEAD it can technically be done, but really it is easier to just fetch the whole remote (or perhaps edit the fetchspec if you never want other bits) -- SethRobertson at 2012-04-19 00:56:20
- !weasels
- The consequences of this proposal are not well-defined. A band of furious weasels may infest your undergarments, or it might work just fine. You should !backup then !tryit and let us know what happens. -- eugenekay at 2012-04-18 20:46:27
- !tryit
- @!tias -- EugeneKay at 2012-04-18 20:45:05
- !fixup
- So you lost or broke something or need to otherwise find, fix, or delete commits? Look at http://sethrobertson.github.com/GitFixUm/ for full instructions, or !fixup_hints for the tl;dr. Warning: changing old commits will require you to !rewrite published history! -- eugenekay at 2012-04-18 20:39:46
- !postproduction
- So, you want to make your commit history look pretty before pushing? http://sethrobertson.github.com/GitPostProduction talks you through how to use 'rebase -i' to do this. -- eugenekay at 2012-04-18 20:36:41
- !repro
- Please paste (using https://gist.github.com/ or similar) a transcript (https://gist.github.com/2415442) of your terminal session, or at least explain exactly what you did that led up to the problem. This will help immensely with troubleshooting. -- offby1 at 2012-04-18 18:01:49
- !repro
- Please paste (using https://gist.github.com/ or similar) a transcript (https://gist.github.com/2415442) of your terminal session, or at least explain exactly what you did that lead up to the problem. This will help immensely with troubleshooting. -- offby1 at 2012-04-18 18:01:37
- !doinitrong
- It sounds like you're approaching this problem in the wrong manner. Let's step back for a minute - What are you actually trying to achieve? Why are you trying to do it this way? -- eugenekay at 2012-04-18 14:15:06
- !UGFWIINI
- You appear to be Using Git For What It Is Not Intended - https://www.google.com/search?q=UGFWIINI Are you sure git is the right tool for the job? See also !wrong -- eugenekay at 2012-04-18 14:11:00
- !doinitrong
- It sounds like you're approaching this problem in the wrong manner. Let's step back for a minute - What are you actually trying to achieve? Why are you trying to do it in this manner? -- eugenekay at 2012-04-18 14:10:35
- !wrong
- @!doinitrong -- eugenekay at 2012-04-18 14:10:03
- !wrong
- @!doinitwrong -- eugenekay at 2012-04-18 14:09:49
- !xy
- @!doinitrong -- eugenekay at 2012-04-18 14:09:39
- !wrong
- @!wrong -- eugenekay at 2012-04-18 14:09:28
- !doinitrong
- It sounds like you're approaching this problem wrong. Let's step back for a minute - What are you actually trying to achieve? -- eugenekay at 2012-04-18 14:09:16
- !website
- @!deploy -- eugenekay at 2012-04-18 10:53:44
- !website
- @!website -- eugenekay at 2012-04-18 00:59:38
- !deploy
- Git is not a deployment tool, but you can build one around it. Here is an example hook to get you started. https://github.com/EugeneKay/scripts/blob/master/bash/git-deploy.sh -- EugeneKay at 2012-04-18 00:59:10
- !question
- You know, you have not actually asked a question. Without asking a question, it is hard to get any responses. Please explain what you are trying to do, what you typed in, and exactly what came back. Use http://gist.github.com/ for exact command sessions. -- jast at 2012-04-16 16:07:59
- !repro
- Please paste (using https://gist.github.com/ or similar) a transcript of your terminal session, or at least explain exactly what you did that lead up to the problem. This will help immensely with troubleshooting. -- jast at 2012-04-16 15:59:02
- !tias
- Try it and see™. You learn much more by experimentation than by asking without having even tried. http://sitaramc.github.com/1-basic-usage/tias.html may help with git-specific TIAS. -- canton7 at 2012-04-16 14:59:45
- !tias
- Try it and see. You learn much more by experimentation than by asking without having even tried. http://sitaramc.github.com/1-basic-usage/tias.html may help with git-specific TIAS. -- FauxFaux at 2012-04-16 14:56:54
- !bup
- "Highly efficient file backup system based on the git packfile format. Capable of doing *fast* incremental backups of virtual machine images." https://github.com/apenwarr/bup -- rking at 2012-04-14 16:33:12
- !factoids
- @!triggers -- EugeneKay at 2012-04-11 09:43:05
- !aliases
- @!triggers -- EugeneKay at 2012-04-11 09:42:59
- !weasels
- The consequences of this proposal are not well-defined. A band of furious weasels may infest your undergarments, or it might work just fine. !backup, then Try It And See. -- EugeneKay at 2012-04-10 18:16:31
- !upstream
- To incorporate changes from an "upstream" repository(or any other Fork) into your repo, you can use: git remote add upstream $URL; git fetch upstream; git merge upstream/$BRANCH -- EugeneKay at 2012-04-10 02:59:34
- !upstream
- To incorporate changes from the "upstream" repository into your Fork, you can use: git remote add upstream $URL; git fetch upstream; git merge upstream/$BRANCH -- EugeneKay at 2012-04-10 02:53:13
- !UGFWIINI
- You appear to be Using Git For What It Is Not Intended - https://www.google.com/search?q=UGFWIINI Let's step back for a minute - What are you actually trying to achieve? Are you sure git is the right tool for the job? -- EugeneKay at 2012-04-07 10:18:27
- !UGFWIINI
- You appear to be Using Git For What It Is Not Intended. https://www.google.com/search?q=UGFWIINI Let's step back for a minute - What are you actually trying to achieve? Are you sure git is the right tool for the job? -- EugeneKay at 2012-04-07 10:18:05
- !xy
- @!UGFWIINI -- EugeneKay at 2012-04-07 10:16:39
- !doinitrong
- @!UGFWIINI -- EugeneKay at 2012-04-07 10:15:56
- !wrong
- @!UGFWIINI -- EugeneKay at 2012-04-07 10:15:48
- !wrong
- @!ugfwiini -- EugeneKay at 2012-04-07 10:15:30
- !doinitrong
- @!ugfwiini -- EugeneKay at 2012-04-07 10:15:22
- !help
- What do you need help with? Something with git? Tell us what's going on, and please be specific. For information on how to abuse me (I'm a bot!), see http://jk.gs/git/bot . Please be gentle. -- canton7 at 2012-04-06 10:42:44
- !filter_subdirectory
- You can use filter-branch's subdirectory filter to split a directory from an existing repository into a new repository, keeping all history. http://help.github.com/split-a-subpath-into-a-new-repo/ -- EugeneKay at 2012-04-05 17:50:24
- !resume
- Git does not yet support resuming, torrenting, or parallel fetching of clones or other network traffic. Some people have successfully created bundles and then used torrents/resuming http download/etc to accomplish what they needed (possibly creating a reliable on-demand VM somewhere to do the initial download, bundle creation, and file hosting). See https://bundler.caurea.org -- SethRobertson at 2012-04-04 21:18:34
- !justdoit
- If you go to the trouble of asking questions, please go to the trouble of taking the advice offered, Take backups (type "!backup" as a reply to learn more) if necessary -- or in fact, it's a good idea anyway. You can almost always censor log messages if you have to. We are literally helpless unless you tell us what we need or do what we ask. Please, Just Do It™. -- charon at 2012-04-03 15:42:31
- !UGFWIINI
- You appear to be Using Git For What It Is Not Intended. While it may technically work, you are more likely to expose the underbelly of any beasts that are lurking about. Your use is not well advised. https://www.google.com/search?q=UGFWIINI -- SethRobertson at 2012-04-01 22:29:02
- !untrack
- to stop git from tracking a file, without deleting the file, use "git rm --cached <file>". Please note that if you push/pull this untracking, the file will be actually be deleted on disk by the remote repo. -- SethRobertson at 2012-03-31 14:37:16
- !web_repositories
- @!web_repos -- SethRobertson at 2012-03-31 14:17:15
- !https_repos
- @!web_repos -- SethRobertson at 2012-03-31 14:16:30
- !http_repos
- @!web_repos -- SethRobertson at 2012-03-31 14:16:15
- !justask
- @!just_ask -- SethRobertson at 2012-03-31 14:14:57
- !just_ask
- You can just ask your question. If anybody knows the answer, they will answer soon (most of the time) -- SethRobertson at 2012-03-31 14:14:41
- !just_ask
- @!just_ask -- SethRobertson at 2012-03-31 14:12:39
- !...
- @!dots -- SethRobertson at 2012-03-31 14:10:16
- !dotdotdot
- @!dots -- SethRobertson at 2012-03-31 14:10:08
- !..
- @!dots -- SethRobertson at 2012-03-31 14:09:52
- !dotdot
- @!dots -- SethRobertson at 2012-03-31 14:09:29
- !..
- @!dotdot -- jast at 2012-03-30 23:35:22
- !dotdotdot
- @!dotdot -- SethRobertson at 2012-03-30 21:11:22
- !dotdot
- "A..B" is "B ^A" or the commits reachable from B and not from A, usually from the merge-base of A-B to B. "A...B" is "A B --not $(merge-base A B)" or all of the commits/changes between A and B. -- SethRobertson at 2012-03-30 21:10:52
- !web_repositories
- @!web_repos -- SethRobertson at 2012-03-29 00:32:52
- !https_repos
- @!web_repos -- SethRobertson at 2012-03-29 00:32:48
- !http_repos
- @!web_repos -- SethRobertson at 2012-03-29 00:32:44
- !web_repos
- Sharing git repositories over http/https (gitweb or `git clone`) is easy with http://sethrobertson.github.com/HowToPutGitOnTheWeb Auth includes none, authfile, pam, ldap, and ssl client certs. -- SethRobertson at 2012-03-29 00:32:37
- !shallow
- Shallow clones give you only a specified number of commit's depth. It sounds nice, but really it causes all sorts of problems if you are trying to do anything non-trivial so avoid using where-ever possible. Anybody caught doing shallow clones should be beaten viciously with their own head. -- SethRobertson at 2012-03-28 15:51:58
- !shallow
- Shallow clones give you only a few commits (minimum 2) depth. However, the trade-off is that the clone is completely useless for further communications with its origin. You cannot pull further commits. You cannot push new commits. Avoid when possible -- SethRobertson at 2012-03-28 15:45:29
- !autocrlf
- @!eol -- frogonwheels at 2012-03-28 05:35:21
- !eol
- The option/attribute to use when you need to care about different line-endings in your file: http://timclem.wordpress.com/2012/03/01/mind-the-end-of-your-line/ -- frogonwheels at 2012-03-28 05:34:50
- !gitolite
- Want to host as many git repos (and users!) as you like, on your own server, with fine-grained access control? You want gitolite: https://github.com/sitaramc/gitolite - Documentation: http://sitaramc.github.com/gitolite/master-toc.html -- frogonwheels at 2012-03-28 02:05:07
- !justask
- @just_ask -- ikke at 2012-03-25 11:31:11
- !set_upstream
- To tell git which remote branch to use in pull (and push if you set push.default to upstream) for a given branch foo, use something like: git branch --set-upstream foo origin/foo -- jast at 2012-03-24 17:03:16
- !vcsh
- https://github.com/RichiH/vcsh -- version control shell - manage dotfiles using git's fake bare repos to put more than one working directory into $HOME -- RichiH at 2012-03-21 21:29:17
- !vcsh
- https://github.com/RichiH/vcsh -- manage dotfiles using git's fake bare repos to put more than one working directory into $HOME -- RichiH at 2012-03-21 21:23:11
- !large_files
- Git isn't yet great at large files(larger than RAM). Look at !annex for solutions. You can find them (after gc) with: git verify-pack -v .git/objects/pack/pack-*.idx | grep blob | sort -k3nr | head | while read s x b x; do git rev-list --all --objects | grep $s | awk '{print "'"$b"'",$0;}'; done -- EugeneKay at 2012-03-20 15:25:57
- !annex
- Storing lots of binary files in git causes repo balloon. git-annex and git-media are two solutions to work around this by keeping the blobs out of the repo. http://git-annex.branchable.com/ and https://github.com/schacon/git-media -- EugeneKay at 2012-03-20 15:24:48
- !big
- @!large_files -- FauxFaux at 2012-03-16 18:21:24
- !last
- For a github-like view of the current directory, try this script by EugeneKay: https://github.com/EugeneKay/scripts/blob/master/bash/git-last.sh -- EugeneKay at 2012-03-12 03:16:47
- !multiple_id
- http://superuser.com/questions/272465/using-multiple-ssh-public-keys -- EugeneKay at 2012-03-10 23:02:06
- !just_ask
- You can just ask your question. If anybody knows the answer, they will answer soon (most of the time) -- ikke at 2012-03-08 15:10:18
- !ask
- Yes, it's okay to ask questions here.... in fact, you just asked one! ;-) Pretty much any question is fine. We're not terribly picky, but we might be asleep. Please be patient and you should get an answer soon. -- eugenekay at 2012-03-07 22:05:31
- !just_ask
- @!ask -- eugenekay at 2012-03-07 22:04:13
- !disclaimer
- This is a possible unsafe operation and in some cases cannot be undone, use at your own risk. See also !backup -- ikke at 2012-03-06 17:52:18
- !gitpaste
- A handy tool for pasting git history is http://gitpad.goeswhere.com/ -- ikke at 2012-03-06 11:59:21
- !submodule_rm
- @!submodules_rm -- frogonwheels at 2012-03-06 03:47:56
- !submodule_mv
- @!submodules_mv -- frogonwheels at 2012-03-06 03:47:33
- !gitflow
- The description of the gitflow branch workflow model is at http://nvie.com/posts/a-successful-git-branching-model/, while a tool to help implement this workflow is at https://github.com/nvie/gitflow See http://sethrobertson.github.com/GitBestPractices/#workflow for other workflow suggestions/references -- SethRobertson at 2012-03-04 16:43:22
- !cheat_sheet
- @!cheat -- SethRobertson at 2012-03-03 18:57:51
- !perfect
- @!postproduction -- SethRobertson at 2012-03-02 21:20:38
- !msysgit
- msysgit is the recommend Windows port/build of git, available at http://code.google.com/p/msysgit/ -- jast at 2012-03-01 15:33:38
- !parallel
- @!resume -- SethRobertson at 2012-02-29 18:01:22
- !torrent
- @!resume -- SethRobertson at 2012-02-29 18:01:02
- !resume
- Git does not yet support resuming, torrenting, or parallel fetching of clones or other network traffic. Some people have successfully created bundles and then used torrents/resuming http download/etc to accomplish what they needed (possibly creating a reliable on-demand VM somewhere to do the initial download, bundle creation, and file hosting) -- SethRobertson at 2012-02-29 18:00:23
- !lg
- git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative" -- FauxFaux at 2012-02-29 16:41:36
- !lg
- git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative" -- FauxFaux at 2012-02-29 16:41:31
- !book
- There are several good books available about git; 'Pro Git' is probably the best: http://progit.org/book/ but also look at !bottomup !cs !designers !gitt !vcbe and !parable -- cbx33 at 2012-02-29 16:17:16
- !gitt
- A book designed to teach people about Git in a real world usage model. The book follows a fictional company as they implement and learn about Git. Covers all 21 standard Git commands. Available for free at http://cbx33.github.com/gitt/ -- cbx33 at 2012-02-29 16:15:37
- !gitt
- http://cbx33.github.com/gitt/ -- cbx33 at 2012-02-29 16:14:38
- !gitt
- Placeholder for a description of the book "Git in the trenches" -- charon at 2012-02-29 16:13:09
- !cheat_sheet
- http://help.github.com/git-cheat-sheets/ -- FauxFaux at 2012-02-29 11:41:14
- !cheat
- For a list of cheatsheets see http://help.github.com/git-cheat-sheets/ -- ikke at 2012-02-29 11:40:56
- !just_ask
- You can just ask your question. If anybody knows the answer, they will answer soon (most of the time) -- ikke at 2012-02-29 11:39:58
- !floating
- @!float -- jast at 2012-02-27 22:01:18
- !github
- For support with Github-specific features (Forks, Pull Requests, Wikis, etc) please /join #github and ask them. Feel free to ask us, but there are no guarantees. -- canton7 at 2012-02-27 16:26:52
- !postproduction
- http://sethrobertson.github.com/GitPostProduction discussed how to use git (rebase -i) to edit your commits before publishing them -- SethRobertson at 2012-02-26 19:42:45
- !github
- For support with Github-specific features(Forks, Pull Requests, Wikis, etc) please /join #github and ask them. Feel free to ask us, but there are no guarantees. -- EugeneKay at 2012-02-20 11:50:02
- !dots
- In the log family (git-log, gitk, etc.) A..B means "everything in B but not in A" [formally: ^A B] and A...B means "everything in A or B but not in both" [formally: A B --not $(git merge-base --all A B)]. An empty "side" of the dots implies HEAD, so 'git log master..' is very different from 'git log master'! -- charon at 2012-02-20 09:20:53
- !ranges
- @!dots -- charon at 2012-02-20 09:19:10
- !dots
- In the log family (git-log, gitk, etc.) A..B means "everything in B but not in A" [formally: ^A B] and A...B means "everything in A or B but not in both" [formally: A B --not $(git merge-base A B)]. An empty "side" of the dots implies HEAD, so 'git log master..' is very different from 'git log master'! -- charon at 2012-02-20 09:19:02
- !privmsg
- You can get gitinfo keyword expansion (e.g. !doc or this one) sent directly to you by sending a private message to me: /msg gitinfo !doc. This avoids spamming the channel. Also see See http://jk.gs/git/bot/trigger.php -- canton7 at 2012-02-17 12:15:23
- !privmsg
- You can get gitinfo keyword expansion (e.g. !doc or this one) sent directly to you by sending a private message to me: /msg gitinfo !doc. This avoids spamming the channel. Also see See http://jk.gs/git/bot/trigger.php. -- canton7 at 2012-02-17 12:15:04
- !privmsg
- You can get gitinfo keyword expansion (e.g. !doc or this one) sent directly to you by sending a private message to me: /msg gitinfo !doc. This avoids spamming the channel. -- canton7 at 2012-02-17 12:13:37
- !detached
- A detached HEAD occurs when your HEAD does not point at a branch. New commits will NOT be added to any branch, and can easily be !lost. This can happen if you a) check out a tag, remote tracking branch, or SHA; or b) if you are in a submodule; or you are in the middle of a c) am or d) rebase that is stuck/conflicted. See !reattach -- charon at 2012-02-16 21:24:49
- !reattach
- Letters refer to !detached. (a) and (b): 'git checkout branchname' to continue working on another branch, or 'git checkout -b branchname' to start a new one here; (c) git am --continue; (d) git rebase --continue -- charon at 2012-02-16 21:23:45
- !detached
- A detached HEAD occurs when your HEAD does not point at a branch. New commits will NOT be added to any branch, and can easily be lost (see !lost). This can happen if you a) check out a tag, remote tracking branch, or SHA; or b) if you are in a submodule; or you are in the middle of a c) am or d) rebase that is stuck/conflicted. See !reattach -- charon at 2012-02-16 21:15:01
- !reattach
- Letters refer to !detached. (a) and (b): 'git checkout branchname' to continue working on another branch, or add -b to start a new one here; (c) git am --continue; (d) git rebase --continue -- charon at 2012-02-16 21:09:30
- !detached
- A detached HEAD occurs when your HEAD does not point at a branch. New commits will NOT be added to any branch, and can easily be lost! This can happen if you a) check out a tag, remote tracking branch, or SHA; or b) if you are in a submodule; or you are in the middle of a c) am or d) rebase that is stuck/conflicted. See !reattach -- charon at 2012-02-16 21:09:01
- !detached
- A detached head occurs when you are not currently checked out into a local branch, or in other words there is no way for your commits to change a reference. This can happen if you a) check out a tag, remote tracking branch, or SHA; or b) if you are in a submodule; or you are in the middle of a c) am or d) rebase that is stuck/conflicted. See !reattach -- charon at 2012-02-16 21:08:11
- !detached
- A detached head occurs when you are not currently checked out into a local branch, or in other words there is no way for your commits to change a reference. This can happen if you a) check out a tag, remote tracking branch, or SHA; or b) if you are in a submodule; or you are in the middle of a c) merge or d) rebase that is conflicted. See !reattach -- charon at 2012-02-16 21:05:10
- !doesntwork
- Sorry to hear it doesn't work. What happened? Did it fall asleep on your couch, with your sister? Eat your homework? What did you want it to do? What happened instead? Please be specific! -- eugenekay at 2012-02-14 14:05:54
- !doesntwork
- Sorry to hear it doesn't work. What happened? Did it fall asleep on your couch? Eat your homework? What did you want it to do? Is it sleeping with your sister instead? What happened instead? Please be specific! -- eugenekay at 2012-02-14 14:04:49
- !xy
- I suspect that you are trying to achieve your goal in a way that doesn't work very well with git. Let's take a step back. What is it that you ultimately want to achieve by what you're trying to do now? -- jast at 2012-02-14 14:02:15
- !lol
- git config --global alias.lol "log --oneline --graph --decorate" -- RandalSchwartz at 2012-02-10 22:56:13
- !lol
- git config --global --add alias.lol "log --oneline --graph --decorate" -- RandalSchwartz at 2012-02-10 22:55:11
- !lol
- git config --add alias.lol "log --oneline --graph --decorate" -- RandalSchwartz at 2012-02-10 22:54:17
- !lol
- git config --add alias.lol = log --oneline --graph --decorate -- RandalSchwartz at 2012-02-10 22:52:58
- !lol
- git config -set alias.lol = log --oneline --graph --decorate -- RichiH at 2012-02-10 22:35:21
- !website
- Git is not a website deployment tool, but can sometimes play one in sufficiently simple/lax environments with a little help. One example of help is: http://toroid.org/ams/git-website-howto and another approach: https://gist.github.com/1714235 -- frogonwheels at 2012-02-09 02:21:59
- !website
- Git is not a website deployment tool, but can sometimes play one in sufficiently simple/lax environments with a little help. One example of help is: http://toroid.org/ams/git-website-howto and another approach is https://gist.github.com/1714235 -- frogonwheels at 2012-02-09 02:21:20
- !untrack
- to stop git from tracking a file, without deleting the file, use "git rm --cached <file>" -- canton7 at 2012-02-07 20:17:45
- !workflow
- Finding the right workflow for you is critical for the success of any SCM project. Git is very flexible with respect to workflow. See http://sethrobertson.github.com/GitBestPractices/#workflow for a list of references about choosing branching and distributed workflows. -- SethRobertson at 2012-02-07 15:32:39
- !sausage_making
- Some developers like to hide the sausage making (pretend to the outside world that their commits sprung full-formed in utter perfection into their git repository). `git rebase -i`, `git add -p`, and `git reset -p` can fix commits up in post-production by splitting different concepts, merging fixes to older commits, etc. See also http://sethrobertson.github.com/GitBestPractices/#sausage -- SethRobertson at 2012-02-07 15:32:24
- !repro
- Please paste (using https://gist.github.com/ or similar) a transcript of your terminal session. This will help immensely with troubleshooting. -- SethRobertson at 2012-02-07 15:32:12
- !reflog
- The git reflog (`git log -g`) records the SHAs of your HEADs for 2+ weeks. `git checkout -b myrestore OLDSHA` and `git reset --hard OLDSHA` will relink to that state via a new and current branch respectively, see http://sethrobertson.github.com/GitFixUm/ for full details. WARNING: reset --hard will trash any uncommitted changes! Visualize with: gitk --all --date-order `git log -g --pretty=%H` -- SethRobertson at 2012-02-07 15:32:05
- !fixup
- So you lost or broke something or need to otherwise find, fix, or delete commits? Look at http://sethrobertson.github.com/GitFixUm/ for full instructions. For hints type !fixup_hints in IRC. Remember: if you have pushed already, there are only a few things you can do without !rewriting_public_history (type that for more info) -- SethRobertson at 2012-02-07 15:31:53
- !best_practices
- There is no one right answer for git best practices, but a consensus from #git is available at http://sethrobertson.github.com/GitBestPractices/ -- SethRobertson at 2012-02-07 15:31:45
- !backup
- Taking a backup of a git repository is always a good idea, especially when taking advice over IRC. Usually, the best way to TACTICALLY back up a git repo is `git clone --mirror`. However, some unusual maintenance might require `tar cf repo-backup.tar repodir`. Testing in a clone is also an excellent idea. See also http://sethrobertson.github.com/GitBestPractices/#backups -- SethRobertson at 2012-02-07 15:31:35
- !IntroToGit
- Randal Schwartz has an introduction to git video http://vimeo.com/35778382 and slides http://www.slideshare.net/RandalSchwartz/introduction-to-git-11451326 -- SethRobertson at 2012-02-07 02:55:46
- !treeish
- What the heck is a "tree-ish"? Read 'man gitrevisions' and http://book.git-scm.com/4_git_treeishes.html -- EugeneKay at 2012-02-06 09:06:35
- !treeish
- What the heck is a "tree-ish"? Read "man gitrevisions" and http://book.git-scm.com/4_git_treeishes.html -- EugeneKay at 2012-02-06 09:06:06
- !treeish
- http://book.git-scm.com/4_git_treeishes.html -- EugeneKay at 2012-02-06 09:03:44
- !gitolite
- Want to host as many git repos (and users!) as you like, on your own server, with fine-grained access control? You want gitolite: https://github.com/sitaramc/gitolite -- canton7 at 2012-02-05 21:13:11
- !repro
- Please paste (using https://gist.github.com/ or similar) a transcript of your terminal session. This will help immensely with troubleshooting. -- canton7 at 2012-02-04 16:51:26
- !botsnack
- Om nom nom -- EugeneKay at 2012-02-03 19:32:50
- !subrepos
- @!subprojects -- EugeneKay at 2012-02-03 02:34:14
- !prompt
- The bash completion script developed with git (http://en.newinstance.it/2010/05/23/git-autocompletion-and-enhanced-bash-prompt/) and the one for zsh shipped with zsh (http://gitready.com/advanced/2009/01/28/zsh-git-status.html) both support showing the status of your repo in the prompt string, at a glance -- charon at 2012-02-02 15:58:14
- !prompt
- The bash completion script developed with git [https://github.com/bobthecow/git-flow-completion/wiki/Install-Bash-git-completion] and the one for zsh shipped with zsh [http://gitready.com/advanced/2009/01/28/zsh-git-status.html] both support showing the status of your repo in the prompt string, at a glance -- charon at 2012-02-02 15:56:58
- !revert
- "Revert" is a heavily overloaded term. Do you mean: a) make a commit that "undoes" the effects of an earlier commit [man git-revert]; b) discard the uncommitted changes in the working tree [git checkout -- .]; c) undo committing [git reset --soft HEAD^, but type !rewriting_public_history] ? -- charon at 2012-02-02 15:43:59
- !revert
- "Revert" is a heavily overloaded term. Do you mean: a) make a commit that "undoes" the effects of an earlier commit [man git-revert]; b) discard the uncommitted changes in the working tree [git checkout -- .]; c) undo committing [git reset HEAD^, but type !rewriting_public_history] ? -- charon at 2012-02-02 15:43:05
- !revert
- "Revert" is a heavily overloaded term. Do you mean: a) make a commit that "undoes" the effects of an earlier commit [man git-revert]; b) discard the uncommitted changes in the working tree [git checkout -- .]; c) undo committing [type !fixup] ? -- charon at 2012-02-02 15:35:33
- !revert
- Revert is a heavily overloaded term in version control. Do you mean: a) make a commit that "undoes" the effects of an earlier commit [man git-revert]; b) discard the uncommitted changes in the working tree [git checkout -- .]; c) undo committing [type !fixup] ? -- charon at 2012-02-02 15:35:06
- !repro
- Please paste(using https://gist.github.com/ or similar) a transcript of your terminal session. This will help immensely with troubleshooting. -- eugenekay at 2012-02-02 03:13:40
- !pastebin
- Please use a pastebin service for long text snippets instead of putting them here: https://gist.github.com/ -- EugeneKay at 2012-02-02 03:11:32
- !fixup
- So you lost or broke something or need to otherwise find, fix, or delete commits? Look at https://gist.github.com/1612395 for full instructions. For hints type !fixup_hints in IRC. Remember: if you have pushed already, there are only a few things you can do without !rewriting_public_history (type that for more info) -- charon at 2012-02-01 15:33:12
- !doc
- A list of useful documentation of all kinds is here: http://git-scm.com/documentation -- or try the wiki at http://git.wiki.kernel.org/. Also try typing "!book" "!cs" "!bottomup" "!parable" "!best_practices" or "!vcbe" or "!designers" here in IRC. !book is probably the most helpful. -- SethRobertson at 2012-02-01 15:28:06
- !track_rename
- git does not track renames of files in history, git only records tree snapshots. It can try to guess whether a change was a rename, or just unrelated removal+addition, when asked. You can help this by making the rename in a different commit from a modification. See man git-log -C and -M -- charon at 2012-02-01 15:23:11
- !track_rename
- git does not track renames of files in history, git only records tree snapshots. It may tries to guess whether a change was a rename, or just unrelated removal+addition, when asked. You can help this by making the rename in a different commit from a modification. See man git-log -C and -M -- SethRobertson at 2012-02-01 15:22:28
- !track_rename
- git does not track renames of files in history, git only records snapshots of file contents. It only tries to guess whether something was a rename, or just a removal+addition, when asked for diffs. You can help this by making the rename in a different commit from a modification. See man git-log -C and -M -- charon at 2012-02-01 15:19:30
- !thanks
- Feeling thankful? Type "ExampleUser++", and ExampleUser will score karma points at http://carmivore.com (our preferred way to objectify self-worth). There's really no point to thanking me – instead, why not thank the person who made me help you? -- jast at 2012-01-31 13:39:33
- !designers
- 'Git for Web Designers' is a quick "Who why what when how" on VCS and git: http://www.webdesignerdepot.com/2009/03/intro-to-git-for-web-designers/ -- eugenekay at 2012-01-31 06:26:36
- !vcbe
- 'Version Control By Example' gives a good overview of the different VCSes available. The author will even mail you a dead-tree copy for free. http://ericsink.com/vcbe/ -- eugenekay at 2012-01-31 06:25:59
- !book
- There are several good books available about git; 'Pro Git' is probably the best: http://progit.org/book/ but also look at !bottomup !cs !designers !vcbe and !parable -- eugenekay at 2012-01-31 06:25:37
- !designers
- "Git for Web Designers" is a quick "Why what how" on VCS and git: http://www.webdesignerdepot.com/2009/03/intro-to-git-for-web-designers/ -- EugeneKay at 2012-01-31 06:23:18
- !book
- There are several good books available, "Pro Git" is probably the best: http://progit.org/book/ but also look at !bottomup !cs !designers !vcbe and !parable -- EugeneKay at 2012-01-31 06:21:14
- !vcbe
- Version Control By Example gives a good overview of the different VCSes available. The author will even mail you a dead-tree copy for free. http://ericsink.com/vcbe/ -- EugeneKay at 2012-01-31 06:17:49
- !ignoretracked
- @!ignore_tracked -- EugeneKay at 2012-01-31 06:14:36
- !ignore_tracked
- Git only applies ignore patterns to untracked files. You can't use ignore patterns to ignore changes to files that are already tracked by git. Still, see https://gist.github.com/1423106 for ways people have worked around the problem. -- EugeneKay at 2012-01-31 06:14:18
- !gitolite
- Want to host as many git repos(and users!) as you like, on your own server, with fine-grained access control? You want gitolite: https://github.com/sitaramc/gitolite -- EugeneKay at 2012-01-31 06:13:36
- !thanks
- Feeling thankful? Type "ExampleUser++", and ExampleUser will score karma points at http://carmivore.com (our preferred way to objectify self-worth). To thank me (the bot), type "jast++" - he's my creator. -- EugeneKay at 2012-01-31 06:02:32
- !thanks
- Feeling thankful? Type "SomeUserName++", and SomeUserName will score karma points at http://carmivore.com (it's our new favorite self-worth measuring system!). To thank me (the bot), type "jast++" - he's my creator. -- EugeneKay at 2012-01-31 06:00:10
- !thanks
- The best way to thank someone is to say their nickname with two pluses after it, as part of a larger message of thanks if you want. So to thank me, for instance, say "gitinfo++". I'm a bot, though, so thanks to me should be directed to whoever got me to tell you the thing that helped you. ++ is a shorthand for increment, and this increases that person's karma, though http://carmivore.com -- SethRobertson at 2012-01-30 22:41:01
- !thanks
- The best way to thank someone is to say their nickname with two pluses after it, as part of a larger message of thanks if you want. So to thank me, for instance, say "gitinfo++". I'm a bot, though, so thanks to me should be directed to whoever got me to tell you the thing that helped you. -- jast at 2012-01-30 15:56:59
- !karma
- Karma is nominally tracked by http://carmivore.com/. If you wanted to thank me, for instance, you would say gitinfo++. My karma is on display via http://carmivore.com/gitinfo -- SethRobertson at 2012-01-29 23:41:24
- !karma
- Karma is nominally tracked by http://carmivore.com/. If you wanted to thank me, for instance, you would say gitinfo++. -- SethRobertson at 2012-01-29 23:40:23
- !welcome
- Welcome to #git, a place full of helpful gits. If you have a question, feel free to just go ahead and ask—somebody should answer shortly. For more info on this channel, see http://jk.gs/git/ Take backups (type !backup to learn how) before taking advice. -- SethRobertson at 2012-01-29 18:12:13
- !vcsh
- https://github.com/RichiH/vcsh - a tool to manage dotfiles using git's fake bare repos to put more than one working directory into $HOME. Nothing to do with csh AFAIK. -- SethRobertson at 2012-01-29 18:07:23
- !situation
- Please pastebin the relevant output of `git log -n 20 --all --graph --format="%h %p %d"` to give us an idea about what your situation is (increase the -n argument if you problem is more complex than 20 commits long) -- SethRobertson at 2012-01-29 18:06:52
- !thanks
- The best way to thank someone is to say their nickname with two pluses after it, as part of a larger message of thanks if you want. So to thank me, for instance, say "gitinfo++". I'm a bot so thanks to me should be directed to my master, jast. -- SethRobertson at 2012-01-29 17:59:16
- !secret
- @!topsecret -- SethRobertson at 2012-01-29 17:55:36
- !top_secret
- @!topsecret -- SethRobertson at 2012-01-29 17:55:00
- !version
- The current version of git is listed in the /topic of #git. Don't be scared if you're using a slightly older version -- they interoperate just fine, though you may be missing a few features. Unless you have a specific need for the newest version, it's best to stick with premade packages. -- EugeneKay at 2012-01-28 15:09:18
- !large_files
- Git isn't yet great at large files (larger than RAM). See http://git-annex.branchable.com/ and https://github.com/schacon/git-media Find them (after gc) with: git verify-pack -v .git/objects/pack/pack-*.idx | grep blob | sort -k3nr | head | while read s x b x; do git rev-list --all --objects | grep $s | awk '{print "'"$b"'",$0;}'; done -- SethRobertson at 2012-01-27 21:19:49
- !submodules_rm
- You want to delete submodules? Excellent choice! All commands are in the superproject. Edit/delete .gitmodules to remove the submodule. Then `rm -rf submodulepath; git rm -f --cached submodulepath; git commit -am "Removed submodules!"` Inspect .git/config for "submodule" entries to remove. Inspect .git/modules for caches to remove "!gitslave" or "!subtree" (type them!) might be alternatives -- SethRobertson at 2012-01-27 17:56:12
- !topsecret
- If your situation is so secret that you can't tell us how to !reproduce it, there's really not much we can do. Perhaps you need to find or buy support you can trust? There are people with clearances even on #git but since clearance levels are classified and #git is not a secure channel, this may not help you. However, you are protected by the biggest secret of all: We just don't care. -- SethRobertson at 2012-01-25 14:32:10
- !tracking_branches
- Remote tracking branches are read-only copies of your last information on what branches the remote last held. The "origin's master" branch is stored as the remote tracking branch origin/master. Local tracking branches are your writable copies of the remote tracking branch. http://www.gitguys.com/topics/tracking-branches-and-remote-tracking-branches/ -- SethRobertson at 2012-01-25 02:52:33
- !ff
- A fast-forward is a special type of merge where you have a revision and you are "merging" another branch's changes that happen to be a descendant of what you have. In such these cases, you do not make a new merge commit but instead just update to his revision. This will happen frequently on a remote-tracking branch of a remote repository. (From man gitglossary) See also: -- ikke at 2012-01-24 12:16:50
- !ff
- A fast-forward is a special type of merge where you have a revision and you are "merging" another branch's changes that happen to be a descendant of what you have. In such these cases, you do not make a new merge commit but instead just update to his revision. This will happen frequently on a remote-tracking branch of a remote repository. (From man gitglossary) -- ikke at 2012-01-24 07:05:40
- !destroy
- The operation/command sequence just mentioned will destroy uncommitted changes. Please apply caution. -- jast at 2012-01-24 00:37:03
- !gitignore_whitedir
- A global/directory .gitignore blacklist with a (potentially) subdirectory whitelist is not easy to specify in git. However, something like `echo -e '/*\n!/a/\n/a/*\n!/a/b/\n/a/b/*\n!/a/b/c/' > .gitignore` (ignore everything but a/b/c directory) or `echo -e '*\n!*/\n!*.c' > .gitignore` (ignore everything but *.txt files) may do what you want. -- SethRobertson at 2012-01-23 20:19:09
- !float
- If you have made a change in your working directory and have NOT YET COMMITTED, you may "float" that change over to another (`git checkout oldbranch`) or new (`git checkout -b newbranch`) branch and commit it there. If the files you changed differ between branches, the checkout will fail. In that case, `git stash` then checkout, and `git stash apply` and go through normal conflict resolution. -- SethRobertson at 2012-01-23 15:41:59
- !disclaimer
- This is a possible unsafe operation that cannot be undone, use at your own risk. See also !backup -- ikke at 2012-01-23 12:08:57
- !disclaimer
- This is a possible unsafe operation that cannot be undone, use at your own risk. -- ikke at 2012-01-23 09:28:54
- !fixit_hints
- @!fixup_hints -- jrnieder at 2012-01-23 07:07:58
- !secret
- @!top_secret -- EugeneKay at 2012-01-23 07:02:16
- !topsecret
- @!top_secret -- EugeneKay at 2012-01-23 07:02:04
- !top_secret
- If your situation is so secret that you can't tell us how to !reproduce it, there's really not much we can do. Perhaps you need to find support you can trust? -- EugeneKay at 2012-01-23 07:01:42
- !clean_history
- For a pointer on how to handle history in git see this e-mail from Linus: http://thread.gmane.org/gmane.comp.video.dri.devel/34744 -- ikke at 2012-01-23 06:57:01
- !fixup
- So you lost or broke something or need to otherwise find, fix, or delete commits? Look at https://gist.github.com/1612395 for full instructions. For hints type !fixup_hints in IRC. Remember, if you have pushed there only a few things you can do without !rewriting_public_history (type that for more info) -- canton7 at 2012-01-22 16:22:38
- !welcome
- Welcome to #git, a place full of helpful gits. If you have a question, feel free to just go ahead and ask -- somebody should answer shortly. For more info on this channel, see http://jk.gs/git/ -- EugeneKay at 2012-01-22 10:56:55
- !irclog
- the IRC log is available at http://colabti.org/irclogger/irclogger_log/git -- canton7 at 2012-01-22 10:55:58
- !submodules
- @!submodule -- SethRobertson at 2012-01-21 21:25:15
- !fetch-vs-pull
- @!pull -- SethRobertson at 2012-01-21 21:24:45
- !fixit_hints
- @!fixit_hints -- SethRobertson at 2012-01-21 21:24:12
- !fixit
- @!fixup -- SethRobertson at 2012-01-21 21:23:59
- !fixit_hints
- !@fixit -- SethRobertson at 2012-01-21 21:23:13
- !fixit
- !@fixup -- SethRobertson at 2012-01-21 21:22:58
- !fixup_hints
- Hints for fixing commits are: (1) NOT PUSHED/PUBLISHED: `git rebase -i $COMMIT^` or perhaps `git commit --amend` (or `git reset HEAD^`). (2) OTHERWISE, `git revert $COMMIT` to make a reverse commit. (3) If you have pushed and MUST remove it, use rebase or filter-branch and type !rewriting_public_history in IRC. -- SethRobertson at 2012-01-21 21:22:14
- !fixup
- So you lost or broke something or need to otherwise find, fix, or delete commits? Look at https://gist.github.com/1612395 for full instructions. For hints type !fixit_hints in IRC. Remember, if you have pushed there only a few things you can do without !rewriting_public_history (type that for more info) -- SethRobertson at 2012-01-21 21:22:07
- !fixit_hints
- Hints for fixing commits are: (1) NOT PUSHED/PUBLISHED: `git rebase -i $COMMIT^` or perhaps `git commit --amend` (or `git reset HEAD^`). (2) OTHERWISE, `git revert $COMMIT` to make a reverse commit. (3) If you have pushed and MUST remove it, use rebase or filter-branch and type !rewriting_public_history in IRC. -- SethRobertson at 2012-01-21 19:50:35
- !fixit
- So you lost or broke something or need to otherwise find, fix, or delete commits? Look at https://gist.github.com/1612395 for full instructions. For hints type !fixit_hints in IRC. Remember, if you have pushed there only a few things you can do without !rewriting_public_history (type that for more info) -- SethRobertson at 2012-01-21 19:50:31
- !fixit
- Hints for fixing commits are: (1) NOT PUSHED/PUBLISHED: `git rebase -i $COMMIT^` or perhaps `git commit --amend` (or `git reset HEAD^`). (2) OTHERWISE, `git revert $COMMIT` to make a reverse commit. (3) If you have pushed and MUST remove it, use rebase or filter-branch and type !rewriting_public_history in IRC. -- SethRobertson at 2012-01-21 19:49:53
- !fixit
- So you lost or broke something or need to otherwise find, fix, or delete commits? Look at https://gist.github.com/1612395 for full instructions. For hints type !fixit_hints in IRC. Remember, if you have pushed there only a few things you can do without !rewriting_public_history (type that for more info) -- SethRobertson at 2012-01-21 19:49:53
- !blog
- Blog posts, while helpful and informative, are quite often outdated, give bad advice, or are just plain wrong. Please don't rely solely upon them, or treat them as authoritative. -- EugeneKay at 2012-01-20 21:04:56
- !submodules
- !@submodule -- SethRobertson at 2012-01-20 20:01:32
- !deploy
- @!website -- EugeneKay at 2012-01-18 16:15:28
- !situation
- Please pastebin the relevant output of 'git log --all --graph --oneline --format="%d %d"' to give us an idea about what your situation is. -- ikke at 2012-01-18 11:23:31
- !context
- Without giving us more context, it's impossible to tell what's going on. Please provide details about what your situation is. (!repro) -- ikke at 2012-01-18 10:31:34
- !sausage_making
- Some developers like to hide the sausage making, or in other words, pretend to the outside world that their commits sprung full-formed in utter perfection into their git repository. `git rebase -i`, `git add -p`, and `git reset -p` can fix commits up in post-production by splitting different concepts, merging fixes to older commits, etc. See also https://gist.github.com/1540906#sausage -- SethRobertson at 2012-01-17 23:51:03
- !fetch-vs-pull
- !@pull -- SethRobertson at 2012-01-17 23:49:02
- !pull
- pull=fetch+merge (or with flags/config also fetch+rebase). It is thus *not* the opposite of push in any sense. A good article that explains the difference between fetch and pull: http://longair.net/blog/2009/04/16/git-fetch-and-merge/ -- SethRobertson at 2012-01-17 23:48:50
- !fetch-vs-pull
- A good article that explains the difference between fetch and pull: http://longair.net/blog/2009/04/16/git-fetch-and-merge/ -- ikke at 2012-01-17 16:05:41
- !orphan
- To create an orphaned branch(unrelated to existing history): git symbolic-ref HEAD refs/heads/orphan; rm .git/index; git clean -fdx; touch foo; git add foo; git commit -m 'Initial commit on branch orphan' -- EugeneKay at 2012-01-17 04:45:32
- !orphan
- To create an orphaned branch(unrelated to existing history): git symbolic-ref HEAD refs/heads/orphan; rm .git/index; git clean -fdx, touch foo, git add foo; git commit -m 'Initial commit on branch orphan' -- EugeneKay at 2012-01-17 04:43:44
- !orphan
- To create an orphan commit(parentless), do: git symbolic-ref HEAD refs/heads/newbranch; rm .git/index; git clean -fdx, touch foo, git add fooa; git commit -m 'Orhphan Commit' -- EugeneKay at 2012-01-17 04:34:52
- !reflog
- The git reflog (`git log -g`) records the SHAs of your HEADs for 2+ weeks. `git checkout -b myrestore OLDSHA` and `git reset --hard OLDSHA` will relink to that state via a new and current branch respectively, see https://gist.github.com/1612395 for full details. WARNING: reset --hard will trash any uncommitted changes! Visualize with: gitk --all --date-order `git log -g --pretty=%H` -- SethRobertson at 2012-01-17 03:09:44
- !workflow
- Finding the right workflow for you is critical for the success of any SCM project. Git is very flexible with respect to workflow. See https://gist.github.com/1540906#workflow for a list of references about choosing branching and distributed workflows. -- SethRobertson at 2012-01-16 19:33:27
- !workflow
- Finding the right workflow for you is critical for the success of any SCM project. Git is very flexible with respect to workflow. See http://progit.org/book/ch3-4.html and http://nvie.com/posts/a-successful-git-branching-model/ (associated tool https://github.com/nvie/gitflow) for branching workflow ideas, http://progit.org/book/ch5-1.html for distributed workflow ideas. Also see https://gist.github.c -- SethRobertson at 2012-01-16 19:24:22
- !undo
- @!fixup -- SethRobertson at 2012-01-16 19:23:54
- !fixup
- So you made a bad commit and want to remove/fix it? Look at https://gist.github.com/1612395 for full instructions. Hints are: (1) NOT PUSHED/PUBLISHED: `git rebase -i $COMMIT^` or perhaps `git commit --amend` (or `git reset HEAD^`). (2) OTHERWISE, `git revert $COMMIT` to make a reverse commit. (3) If you have pushed and MUST remove it, use rebase or filter-branch and type !rewriting_public_history in IRC. -- SethRobertson at 2012-01-16 19:23:38
- !branch_replace
- To replace one branch with the contents of another: git clean -dfx; git checkout $destination; git reset --hard $source; git reset --soft ORIG_HEAD; git add -Af .; git commit -m "Rewrite $destination with $source"; git merge -s ours $source -- SethRobertson at 2012-01-16 19:23:28
- !doc
- A list of useful documentation of all kinds is here: http://git-scm.com/documentation -- or try the wiki at http://git.wiki.kernel.org/. Also try typing "!book" "!cs" "!bottomup" "!parable" "!best_practices" here in IRC, or reading http://www.webdesignerdepot.com/2009/03/intro-to-git-for-web-designers/ -- SethRobertson at 2012-01-16 19:23:19
- !parable
- 'The git parable' provides some good reasoning behind git. http://tom.preston-werner.com/2009/05/19/the-git-parable.html -- SethRobertson at 2012-01-16 19:23:11
- !backup
- Taking a backup of a git repository is always a good idea before doing something unusual (well, it is an excellent idea as a matter of course). Usually, the best way to TACTICALLY back up a git repo is `git clone --mirror`. However, some unusual maintenance might require `tar cf repo-backup.tar repodir`. Testing in a clone is also an excellent idea. See also https://gist.github.com/1540906#backups -- SethRobertson at 2012-01-16 19:22:54
- !config_files
- @!configfiles -- EugeneKay at 2012-01-16 18:52:41
- !reproduce
- @!repro -- EugeneKay at 2012-01-14 19:57:30
- !topsecret
- If your situation is so secret that you can't tell us how to !reproduce it, there's really not much we can do. Perhaps you need to find support you can trust? -- EugeneKay at 2012-01-14 19:57:16
- !remote_branches
- Remote branches are not created locally on clone. They show up as remote branches (git branch -r). To create local branches from them use git checkout -b local_name remote/branch_name or more recently git checkout -t remote/branch-name -- ikke at 2012-01-12 13:11:18
- !rewrite
- @!rewriting_public_history -- EugeneKay at 2012-01-12 02:57:27
- !track_rename
- git does not track renames of files in history, git only records additions and deletions. It only tries to guess it when needed/asked. You can help this by making the rename in a different commit from a modification. See man git-log -C and -M -- SethRobertson at 2012-01-11 01:38:00
- !detached
- A detached head occurs when you are not currently checked out into a local branch, or in other words there is no way for your commits to change a reference. This can happen if you check out a tag, remote tracking branch, or SHA; or if you are in a submodule or you are in the middle of a merge or rebase that is conflicted. -- SethRobertson at 2012-01-11 01:37:46
- !remote_branches
- Remote branches are not created locally on clone. They show up as remote branches (git branch -r). To create local branches form them use git checkout -b local_name remote/branch_name or more recently git checkout -t remote/branch_name -- canton7 at 2012-01-10 19:53:29
- !remote_branches
- Remote branches are not created locally on clone. They show up as remote branches (git branch -r). To create local branches form them use git checkout -b local_name remote/branch_name or more recently git checkout -t remote/branch_name (or git checkout branch_name) -- canton7 at 2012-01-10 19:39:08
- !remote_branches
- Remote branches are not created locally on clone. They show up as remote branches (git branch -r). To create local branches form them use git checkout -b local_name remote/branch_name or more recently git checkout -t remote/branch-name -- ikke at 2012-01-10 14:15:45
- !remote_branches
- Remote branches are not created locally on clone. They show up as remote branches (git branch -r). To create local branches form them use git checkout -b local_name remote/branch_name or more recently git checkout remote/branch-name -- ikke at 2012-01-10 14:11:52
- !remote_branches
- Remote branches are not created locally on clone. They show up as remote branches (git branch -r). To create local branches form them use git checkout -b local_name remote/branch_name or more recently git checkout local_name remote/branch-name -- ikke at 2012-01-10 14:09:17
- !remote_branches
- Remote branches are not created locally on clone. They show up as remote branches (git branch -r). To create local branches form them use git checkout -b local_name remote/branch_name or more recently git checkout localname remote/branch-name -- ikke at 2012-01-10 14:07:37
- !help
- What do you need help with? Something with git? Tell us what's going on, and please be specific. How to abuse me(I'm a bot!)? See http://jk.gs/git/bot for more information. Please be gentle. -- eugenekay at 2012-01-09 16:39:27
- !work
- @!doesntwork -- eugenekay at 2012-01-09 16:37:02
- !doesntwork
- Sorry to hear it doesn't work. What happened? Did it fall asleep on your couch? Eat your homework? What did you want it to do? What happened instead? Please be specific! -- eugenekay at 2012-01-09 16:36:42
- !anyone
- Usually, it does not help to ask for someone specific to answer your question. No one is the sole expert on anything, or even if they may be, there are plenty of others who know enough to help you -- ikke at 2012-01-09 08:21:26
- !reset
- A good resource explaining git-reset is http://progit.org/2011/07/11/reset.html -- ikke at 2012-01-09 07:50:28
- !refund
- If you are not satisfied with git for whatever reason, you are entitled to a full refund of the purchase price, and are invited to use another VCS. Elsewhere. -- EugeneKay at 2012-01-09 04:59:35
- !--
- @!dashes -- EugeneKay at 2012-01-08 23:36:48
- !dashes
- Use a double-dash(--) to separate refs from paths, especially when dealing with ambiguous file names. Ex: git checkout master -- origin (check out the file "origin" from branch "master") -- EugeneKay at 2012-01-08 23:36:38
- !dashes
- @!-- -- EugeneKay at 2012-01-08 23:33:12
- !--
- Use a double-dash(--) to separate refs from paths, especially when dealing with ambiguous file names. Ex: git checkout master -- origin (check out the file "origin" from branch "master") -- EugeneKay at 2012-01-08 23:32:23
- !master_branch
- Master is the default name for the first branch created by git and is in no way special. You could just delete it if you want (though in a bare repository you'll probably want to change HEAD first). -- jast at 2012-01-07 14:52:49
- !bot
- @!gitinfo -- EugeneKay at 2012-01-07 13:22:08
- !hello
- @!welcome -- jast at 2012-01-06 18:21:34
- !hi
- @!welcome -- jast at 2012-01-06 18:13:56
- !shortcuts
- @!triggers -- jast at 2012-01-06 18:03:35
- !branch_rename
- Renaming a branch is easy. `git branch oldname newname`, but this only renames it locally. If you want to rename it globally, you need to `git push origin newname; git push --delete origin oldname` and then users need to `git remote prune origin` and then rename their local branches. Do NOT do this in an attempt to, say, fix a problem on oldname, that is !rewriting_public_history. -- SethRobertson at 2012-01-06 15:19:56
- !branch_delete
- Deleting a branch is easy. `git branch -d branchname` (or -D). However, this will NOT delete the branch upstream, that requires `git push --delete origin branchname`. However, this will NOT delete remote tracking branches. EACH USER must `git remote prune origin`, but if any users have local branches, they must likewise run `git branch -d branchname` (or -D) -- SethRobertson at 2012-01-06 15:13:53
- !branch_delete
- Deleting a branch is easy. `git branch -d branchname` (or -D depending). However, this will NOT delete a branch upstream. To do that you must push the deletion. `git push --delete origin branchname`. However, this will NOT delete remote tracking branches with that name. To do that EACH USER must `git remote prune origin``. However, this will NOT delete any local tracking branches other users -- SethRobertson at 2012-01-06 15:10:44
- !profanity
- Hey! This is a family-safe channel, so keep it frakking clean you fierfekker! -- SethRobertson at 2012-01-06 14:13:59
- !ping
- I only respond to !ECHO-REQUEST -- SethRobertson at 2012-01-05 20:03:37
- !triggers
- See http://jk.gs/git/bot/trigger.php -- jast at 2012-01-04 12:41:38
- !shortcuts
- See http://jk.gs/git/bot/trigger.php -- jast at 2012-01-04 12:41:14
- !cs
- 'Git for Computer Scientists' explains the basic structures used by git, which is very helpful for understanding its concepts. http://sitaramc.github.com/gcs/ -- jast at 2012-01-03 23:47:55
- !cs
- 'Git for Computer Scientists' explains the basic structures used by git, which is very helpful for understanding its concepts. http://eagain.net/articles/git-for-computer-scientists/ is the classic version, while http://sitaramc.github.com/gcs/ is a newer one with some additional info -- sitaram at 2012-01-03 23:47:02
- !fixup
- So you made a bad commit and want to remove/fix it? (1) NOT PUSHED/PUBLISHED: `git rebase -i $COMMIT^` or perhaps `git commit --amend` (or `git reset HEAD^`). (2) OTHERWISE, `git revert $COMMIT` to make a reverse commit. (3) If you have pushed and MUST remove it, use rebase or filter-branch and type !rewriting_public_history in IRC. -- jast at 2012-01-02 22:18:02
- !fixup
- So you made a bad commit and want to remove/fix it? 1) NOT PUSHED/PUBLISHED: `git rebase -i $COMMIT^` or perhaps `git commit --amend`. (2) OTHERWISE, `git revert $COMMIT` to make a reverse commit. 3) If you have pushed and MUST remove it, use rebase or filter-branch and type !rewriting_public_history in IRC. -- jast at 2012-01-02 22:17:05
- !fixup
- So you made a bad commit and want to remove/fix it? 1) NOT PUSHED/PUBLISHED: `git rebase -i $COMMIT^` or perhaps `git commit --amend`. (2) OTHERWISE, `git revert $COMMIT` to make a reverse commit. If you have pushed and MUST remove it, use rebase or filter-branch and type !rewriting_public_history in IRC. -- jast at 2012-01-02 22:16:47
- !undo
- There are several ways to undo a commit: If you have pushed it use "git revert <commit>" to undo the changes it introduced, otherwise use "git rebase -i <commit>^" and delete that commit from the list and it will be as though it never existed. You can also remove the latest commit without losing its changes with "git reset HEAD^" -- cirwin at 2012-01-02 22:11:06
- !undo
- There are several ways to undo a commit: If you have pushed it use "git revert <commit>" to undo the changes it introduced, otherwise use "git rebase -i <commit>^" and delete that commit from the list and it will be as though it never existed. -- cirwin at 2012-01-02 22:09:52
- !undo
- There are two ways to undo a commit: If you have pushed it use "git revert <commit>" to undo the changes it introduced, otherwise use "git rebase -i <commit>^" and delete that commit from the list and it will be as though it never existed. -- cirwin at 2012-01-02 22:09:02
- !best_practices
- There is no one right answer for git best practices, but a consensus from #git is available at https://gist.github.com/1540906 -- SethRobertson at 2012-01-01 19:48:37
- !lost
- As long as you have `git commit`ed your changes (or even `git add`ed them), your changes will not be lost for over two weeks unless you work really hard at it. There are two places where "lost" changes can be hiding. They might be in the reflog (`git log -g`) or they might be in lost&found (`git fsck --unreachable`). Type "!dangling" and "!reflog" into IRC for more info. -- jast at 2011-12-31 15:16:22
- !gitslave
- gitslave (http://gitslave.sf.net) is useful to add subsidiary git repositories to a git superproject when you control and develop on the subprojects at more or less the same time as the superproject, and furthermore when you typically want to tag, branch, push, pull, etc. all repositories at the same time. -- jast at 2011-12-31 15:13:31
- !welcome
- Welcome to this channel. Go ahead and ask your question. Very few people are responding to greetings, but will respond if a question is asked. -- ikke at 2011-12-30 09:33:15
- !master_branch
- Master is the default name for the first branch created by git and is in no way special. You could just delete it if you want -- ikke at 2011-12-28 14:51:15
- !track_rename
- git does not track renames of files in history. It only tries to guess it when needed. -- ikke at 2011-12-28 06:55:40
- !ping
- pong -- SethRobertson at 2011-12-27 22:17:51
- !isgitbetter
- we think so, but if you don't, please go away and use $YOURFAVOURITESYSTEM. See http://whygitisbetterthanx.com/ among many many other places. -- jast at 2011-12-27 18:23:34
- !isgitbetter
- we think so, but if you don't, please go away and use $YOURFAVOURITESYSTEM See http://whygitisbetterthanx.com/ among many many other places. -- ikke at 2011-12-27 14:18:09
- !isgitbetter
- we think so, but if you don't, please go away and use $YOURFAVOURITESYSTEM See http://whygitisbetterthanx.com/ among │ __root__ -- ikke at 2011-12-27 14:17:55
- !isgitbetter
- we think so, but if you don't, please go away and use $YOURFAVOURITESYSTEM -- ikke at 2011-12-27 14:12:32
- !gitignore_whitefile
- A global/directory .gitignore blacklist with specific file whitelist is trivial to specify in git, since files tracked by git are ignored by .gitignore. So simply make a .gitignore of "*" and then `git add -f filename` Those specific files will be tracked by git and show up in git status and friends. -- SethRobertson at 2011-12-25 18:47:32
- !gitignore_whitedir
- A global/directory .gitignore blacklist with a subdirectory whitelist is not easy to specify in git. However, something like `echo -e '/*\n!/a/\n/a/*\n!/a/b/\n/a/b/*\n!/a/b/c/' > .gitignore` will do what you want (ignore everything except the /a/b/c/ directory) -- SethRobertson at 2011-12-25 18:45:29
- !gitolite_ssh
- See http://sitaramc.github.com/gitolite/sts.html for steps to troubleshoot ssh/gitolite -- canton7 at 2011-12-23 22:16:53
- !pull
- pull=fetch+merge (or with flags/config also fetch+rebase). It is thus *not* the opposite of push in any sense. -- charon at 2011-12-23 16:57:34
- !question
- You know, you have not actually asked a question. Without asking a question, it is hard to get any responses. Please explain what you are trying to do, what you typed in, and exactly what came back. Use http://pastebin.com for exact command sessions. -- SethRobertson at 2011-12-23 16:47:45
- !gitslave
- gitslave (http://gitslave.sf.net) is useful to add a subsidiary git repositories to a git superproject when you control and develop on the subprojects at more or less the same time as the superproject, and furthermore when you typically want to tag, branch, push, pull, etc all repositories at the same time. -- jast at 2011-12-22 18:39:55
- !gitslave
- gitslave (http://gitslave.sf.net) is useful to add a subsidiary git repositories to a git superproject when you control and develop on the subprojects at more -- jast at 2011-12-22 18:39:43
- !svn_upstream
- git-svn determines the upstream branch to push to by finding the topmost commit in your current branch that has a "git-svn-id" line (i.e., 'git log --grep=^git-svn-id: --first-parent -1'), and using the branch mentioned in it. -- charon at 2011-12-22 13:56:39
- !svn_upstream
- git-svn determines the upstream branch to push to by finding the topmost commit in your current branch that has a "git-svn-id" line, and using the branch mentioned in it. -- jast at 2011-12-22 13:52:41
- !gka
- For a better way to view the reflog, try: gka() { gitk --all $(git log -g --format="%h" -50) "$@"; }; gka -- FauxFaux at 2011-12-22 00:13:09
- !gka
- gka() { gitk --all $(git log -g --format="%h" -50) "$@"; }; gka -- FauxFaux at 2011-12-22 00:12:46
- !reflog
- The git reflog (`git log -g`) records the SHAs of your previous git commands for 2+ weeks, which aides recovery. `git checkout -b myrestore OLDSHA` and `git reset --hard OLDSHA` will get you back to that state via a new and current branch respectively. WARNING: reset --hard will trash any uncommitted changes! Visualize with: gitk --all --date-order `git log -g --pretty=%H` -- SethRobertson at 2011-12-19 22:14:06
- !reflog
- The git reflog (`git log -g`) records the SHAs of your previous git commands for 2+ weeks, which aides recovery. `git checkout -b myrestore OLDSHA` and `git reset --hard OLDSHA` will get you back to that state via a new and current branch respectively. WARNING: reset will trash any uncommitted changes! Visualize with: gitk --all --date-order `git log -g --pretty=%H` -- SethRobertson at 2011-12-19 22:13:30
- !dangling_tree
- A dangling tree is a directory tree of files that was not attached to a commit. These are rarely interesting, and often caused by merge conflicts. Inspect these files with `git ls-tree -r SHA` -- SethRobertson at 2011-12-19 17:56:10
- !dangling_blob
- A dangling blob is a file which was not attached to a commit. This is often caused by `git add`s which were superceded before commit or merge conflicts. Inspect these files with `git show SHA` -- SethRobertson at 2011-12-19 17:56:04
- !dangling_commit
- A dangling commit is a commit no longer reachable by any branch or tag. This can happen due to resets and rebases and are normal. `git show SHA` will let you inspect them. Also this (look for dots w/o children and w/o green label): gitk --all --date-order `git fsck --no-reflog | grep "dangling commit" | awk '{print $3;}'` -- SethRobertson at 2011-12-19 17:55:56
- !dangling
- Dangling objects represent things added to git which are no longer needed based on the git commands you typed in. This can be normal workflow (rebase, reset, add, etc) or errors you made. Typing "!dangling_commit" "!dangling_blob" and "!dangling_tree" into IRC will get you more information about each type. -- SethRobertson at 2011-12-19 17:55:39
- !reflog
- The git reflog (`git log -g`) hold references to old HEADs which were the results of the commands you issued. It saves these old references for at least two weeks, so you recover old state. `git checkout -b myrestore OLDSHA` and `git reset --hard OLDSHA` will get you back to that state via a new and current branch. WARNING: reset will trash any uncommitted changes! -- SethRobertson at 2011-12-19 17:55:33
- !lost
- As long as you have `git commit`ed your changes (or even `git add`ed them), your changes will not be lost for over two weeks unless you work really hard at it. There are two places where "lost" changes can be hiding. They might be in the reflog (`git log -g`) or they might be in lost&found (`git fsck --unreachable`). Type "!dangling" and "!reflog" into IRC more info. -- SethRobertson at 2011-12-19 17:54:56
- !branch_replace
- To replace one branch with the contents of another: git clean -dfx; git checkout $destination; git reset --hard $source; git reset --soft ORIG_HEAD; git add -A .; git commit -m "Rewrite $destination with $source"; git merge -s ours $source -- SethRobertson at 2011-12-18 21:29:49
- !fixup
- So you made a bad commit and want to remove/fix it? You have two recommended options. First if you HAVE NOT PUSHED, you can use `git rebase -i` or perhaps --amend to remove or change the commit. Second, if you HAVE PUSHED, you can use `git revert $COMMIT` to make a reverse commit. If you have pushed and MUST remove it, use rebase or filter-branch and type !rewriting_public_history in IRC. -- SethRobertson at 2011-12-18 20:44:17
- !submodule_change
- In order to change a submodule you must go into the submodule repository, check it out to the appropriate branch, make the needed change (possibly involving git pull), commit the change, cd .. (out of the submodule), git commit -m "Updated submodule" submodulepath -- SethRobertson at 2011-12-18 19:54:47
- !sausage_making
- Some developers like to hide the sausage making, or in other words, pretend to the outside world that their commits sprung full-formed in utter perfection into their git repository. `git rebase -i`, `git add -p`, and `git reset -p` can fix commits up in post-production by splitting different concepts, merging fixes to older commits, etc. See also TopGit and StGit. -- SethRobertson at 2011-12-16 20:12:27
- !float
- If you have made a change in your working directory and have NOT YET COMMITTED, you may "float" that change over to another/new branch and commit it there. If the files you changed differ between the current and target branches, the checkout will fail. In that case, `git stash` then checkout, and `git stash apply` and go through normal conflict resolution. -- SethRobertson at 2011-12-16 18:45:15
- !fixup
- So you made a bad commit and want to remove/fix it? You have two recommended options. First if you HAVE NOT PUSHED, you can use `git rebase -i` to remove or change the commit. Second, if you HAVE PUSHED, you can use `git revert $COMMIT` to make a reverse commit. If you have pushed and MUST remove it, use rebase or filter-branch and type !rewriting_history in IRC. -- SethRobertson at 2011-12-16 18:42:01
- !branch
- A branch and a tag are just convenient ways of spelling the name of a particular commit. A commit represents a specific set of files and the history of all commits which came before it, and the SHA-1 hash tag official name provides cryptographic assurance of the lineage of a particular commit (and thus branch or tag). A branch's reference may change. A tag usually doesn't. -- SethRobertson at 2011-12-16 17:30:23
- !branch
- A branch and a tag are just convenient ways of spelling the name of a particular commit. A commit represents a specific set of files and the history of all commits which came before it, and the SHA-1 hash tag official name provides cryptographic assurance of the lineage of a particular commit (and thus branch or tag). A branch's reference may change. A tag may not. -- SethRobertson at 2011-12-16 17:28:22
- !justdoit
- If you go to the trouble of asking questions, please go to the trouble of taking the advice offered, Take backups (type "!backup" as a reply to learn more) if necessary or do it anyway as an excellent idea. You can almost always censor log messages if you have to. We are literally helpless unless you tell us what we need or do what we ask. Please, Just Do It™. -- SethRobertson at 2011-12-16 05:06:42
- !isgitbetter
- We think so, and if you don't want to be ugly and stupid, you should think so too. See http://whygitisbetterthanx.com/ among many many many other places. -- SethRobertson at 2011-12-16 04:54:55
- !website
- Git is not a website deployment tool, but can sometimes play one in sufficiently simple/lax environments with a little help. One example of help is: http://toroid.org/ams/git-website-howto -- SethRobertson at 2011-12-16 04:52:54
- !large_repos
- Git can be slow in the face of large repositories. There are git-config options which can help. pack.threads=1; pack.deltaCacheSize=1; pack.windowMemory=512m; core.packedGitWindowSize=16m; core.packedGitLimit=128m. Other likely ones exist. -- SethRobertson at 2011-12-16 04:45:24
- !large_files
- Git isn't yet great at large files (larger than RAM). See http://git-annex.branchable.com/ and https://github.com/schacon/git-media -- SethRobertson at 2011-12-16 04:45:17
- !subtree
- The git subtree merge method is ideal to incorporate a subsidiary git repositories directly in to single git repository with "unified" git history, where you only need to pull changes in from external sources not contribute your own changes back (which if technically possible is at least difficult). See http://progit.org/book/ch6-7.html Type "!subtree_alt" for more options -- SethRobertson at 2011-12-16 04:26:08
- !subtree_alt
- The git subtree merge method is hard to export changes from.. https://github.com/apenwarr/git-subtree provides another method which appears to be easier to export changes from. Also as a no-change-exported method, see https://metacpan.org/module/git-stitch-repo which claims to generate a unified history instead of merged branches. -- SethRobertson at 2011-12-16 04:25:47
- !justdoit
- If you go to the trouble of asking questions, please go to the trouble of taking the advice offered, Take backups (type "!backup" as a reply to learn more) if necessary or do it anyway as an excellent idea. You can almost always censor log messages if you have to. -- SethRobertson at 2011-12-16 04:09:27
- !backup
- Taking a backup of a git repository is always a good idea before doing something unusual (well, it is an excellent idea as a matter of course). Usually, the best way to TACTICALLY back up a git repo is `git clone --mirror`. However, some unusual maintenance might require `tar cf repo-backup.tar repodir`. Testing in a clone is also an excellent idea. -- SethRobertson at 2011-12-14 18:56:00
- !help
- Please see http://jk.gs/git/bot for more information about how to abuse me. Please be gentle. -- SethRobertson at 2011-12-14 17:35:04
- !gitinfo
- I am an IRC bot which responds to certain keywords to provide helpful(?) information to humans. Please see http://jk.gs/git/bot for more information about how to use me. -- SethRobertson at 2011-12-14 17:32:05
- !help
- Please see http://jk.gs/git/bot for more information about how to abuse me. -- SethRobertson at 2011-12-14 17:31:54
- !rewriting_public_history
- Rewriting public history is a very bad idea. Anyone else who may have pulled the old history will have to `git pull --rebase` and even worse things if they have tagged or branched, so you must publish your humiliation so they know what to do. You will need to `git push -f` to force the push. The server may not allow this. See receive.denyNonFastForwards (git-config) -- SethRobertson at 2011-12-14 17:15:05
- !fixup
- So you made a bad commit and want to remove/fix it? You have two recommended options. First if you HAVE NOT PUSHED, you can use `git rebase -i` to remove or change the commit. Second, if you HAVE PUSHED, you can use `git revert $COMMIT` to commit a reverse commit. If you have pushed and still remove it. Use rebase or filter-branch and type !rewriting_history in IRC. -- SethRobertson at 2011-12-14 17:14:12
- !fixup
- So you made a bad commit and want to remove/fix it? You have two recommended options. First if you HAVE NOT PUSHED, you can use `git rebase -i` to remove or change the commit. Second, if you HAVE PUSHED, you can use `git revert ` to commit a reverse commit. If you have pushed and you really really want to remove it, you will make everyone else cry. Use rebase (or perhaps filter-branch) and type !rewri -- SethRobertson at 2011-12-14 17:11:26
- !subprojects
- So, you want to add git repositories inside of other git repositories? Well, you have four main options. First is to just do it, add the repo to the outer project's .gitignore, and treat them entirely separately. Best if they are entirely seperate. Otherwise your best options are "!submodule" "!gitslave" and "!subtree" Try typing those commands into this IRC channel. -- SethRobertson at 2011-12-14 17:04:08
- !doc
- A list of useful documentation of all kinds is here: http://git-scm.com/documentation -- or try the wiki at http://git.wiki.kernel.org/. Also try typing "!book" "!cs" "!bottomup" here in IRC, or reading http://www.webdesignerdepot.com/2009/03/intro-to-git-for-web-designers/ -- SethRobertson at 2011-12-14 17:01:42
- !submodules_mv
- Renaming git submodules is harder than it perhaps should be. All commands are in the superproject. Edit .gitmodules to reflect the new path. Then `git mv oldsubmodulepath newsubmodulepath; git commit -m "Moved submodule from old to new"` Inspect .git/config to see if anything looks likely for changing. -- SethRobertson at 2011-12-14 16:58:51
- !workflow
- Finding the right workflow for you is critical for the success of any SCM project. Git is very flexible with respect to workflow. See http://progit.org/book/ch3-4.html and http://nvie.com/posts/a-successful-git-branching-model/ (associated tool https://github.com/nvie/gitflow) for branching workflow ideas, http://progit.org/book/ch5-1.html for distributed workflow ideas. -- SethRobertson at 2011-12-14 16:58:25
- !submodules_rm
- You want to delete submodules? Excellent choice! All commands are in the superproject. Edit/delete .gitmodules to remove the submodule. Then `rm -rf submodulepath; git rm -f --cached submodulepath; git commit -am "Removed submodules!"` Inspect .git/config to see if anything looks likely for removing. "!gitslave" or "!subtree" (type them!) might be alternatives -- SethRobertson at 2011-12-14 16:58:25
- !codereview
- Gerrit is a code review tool for git. See http://code.google.com/p/gerrit/ You may want to enforce certain workflow to prevent people bypassing review. gitolite (and a branching workflow) or a integrator repository (distributed workflow) would be good for this. -- SethRobertson at 2011-12-14 16:50:05
- !tools
- See https://git.wiki.kernel.org/articles/i/n/t/Interfaces,_frontends,_and_tools.html for information about known interfaces, frontends, and tools. -- SethRobertson at 2011-12-13 15:35:34
- !gitinfo
- Please see http://jk.gs/git/bot for more information about how to use me. -- SethRobertson at 2011-12-13 15:30:11
- !ignoretracked
- Git only applies ignore patterns to untracked files. You can't use ignore patterns to ignore changes to files that are already tracked by git. Still, see https://gist.github.com/1423106 for ways people have worked around the problem. -- SethRobertson at 2011-12-13 02:35:26
- !subtree
- The git subtree merge method is ideal to incorporate a subsidiary git repositories directly in to single git repository with "unified" git history, where you only need to pull changes in from external sources not contribute your own changes back (which if technically possible is at least difficult). See http://progit.org/book/ch6-7.html See also https://github.com/apenwarr/git-subtree -- SethRobertson at 2011-12-13 02:35:19
- !subtree
- The git subtree merge method is ideal to incorporate a subsidiary git repositories directly in to single git repository with "unified" git history, where you only need to pull changes in from external sources not contribute your own changes back (which if technically possible is at least difficult). See http://progit.org/book/ch6-7.html See also the poorly named https://github.com/apenwarr/git -- SethRobertson at 2011-12-13 02:35:05
- !submodule
- git-submodule is ideal to add subsidiary git repositories to a git superproject when you do not control the subprojects or more specifically wish to fix the subproject at a specific revision even as the subproject changes upstream. See http://book.git-scm.com/5_submodules.html -- SethRobertson at 2011-12-13 02:34:58
- !gitslave
- gitslave (http://gitslave.sf.net) is useful to add a subsidiary git repositories to a git superproject when you control and develop on the subprojects at more of less the same time as the superproject, and furthermore when you typically want to tag, branch, push, pull, etc all repositories at the same time. -- SethRobertson at 2011-12-13 02:34:40
- !configfiles
- the recommended way is to change your application so that you can (perhaps optionally) store site-specific configuration/data in separate files, then keep those files out of version control. Still, see https://gist.github.com/1423106 for ways people have worked around the problem. -- SethRobertson at 2011-12-13 02:11:28
- !work
- Sorry to hear it doesn't work. What did you want it to do? What happened instead? Did you get any error messages? -- SethRobertson at 2011-12-13 02:08:55
- !work
- 'Sorry to hear it doesn't work. What did you want it to do? What happened instead? Did you get any error messages?' -- SethRobertson at 2011-12-13 02:06:47
- !bugtracker
- the developers of git don't use a bug tracker. If you want to report a bug, send an e-mail to the mailing list at git@vger.kernel.org; you can review past discussions at http://j.mp/gitlist -- jast at 2011-12-12 13:17:12
- !doesntwork
- What happened? Did it fall asleep on your couch? Eat your homework? Destroy your hard drive? Is it making faces at you? Does it want more money? Is it sleeping with your best friend? Please be specific! -- frogonwheels at 2011-12-09 02:30:23
- !bugtracker
- the developers of git don't use a bug tracker. If you want to report a bug, send an e-mail to the mailing list at git\@vger.kernel.org; you can review past discussions at http://j.mp/gitlist -- jast at 2011-12-09 00:36:00
- !configfiles
- the recommended way is to change your application so that you can (perhaps optionally) store site-specific configuration/data in separate files, then keep those files out of version control. -- jast at 2011-12-09 00:35:50
- !ask
- yes, it's okay to ask questions here... in fact, you just asked one! ;) Pretty much any question is fine. We're not terribly picky. -- jast at 2011-12-09 00:35:40
- !ignoretracked
- git only applies ignore patterns to untracked files. You can't use ignore patterns to ignore changes to files that are already tracked by git. -- jast at 2011-12-09 00:35:25
- !HEAD
- HEAD is a 'pointer' in the repository that refers to whatever is currently checked out (or the default branch in bare repositories). It's not specific to any branch. -- jast at 2011-12-09 00:35:03
- !bare
- an explanation of bare and non-bare repositories can be found here: http://bare-vs-nonbare.gitrecipes.de/ -- jast at 2011-12-09 00:34:50
- !work
- sorry to hear it doesn't work. What did you want it to do? What happened instead? Did you get any error messages? -- jast at 2011-12-09 00:34:38
- !result
- many terms are used in many different ways in version control; therefore, your question seems ambiguous to some of us. Please describe the outcome you had in mind so that we get a better understanding of which meaning you intended. -- jast at 2011-12-09 00:34:26
- !repro
- please paste (e.g. using http://git.pastebin.com/) a transcript of your terminal session in which the problem occurred so that we can troubleshoot more easily. -- jast at 2011-12-09 00:34:12
- !website
- this explains how to deploy a website out of a git repository: http://toroid.org/ams/git-website-howto -- jast at 2011-12-09 00:33:47
- !crlf
- to fix problems with line endings on different platforms, check out http://line-endings.gitrecipes.de/ -- jast at 2011-12-09 00:33:33
- !doc
- a list of useful documentation of all kinds is here: http://git-scm.com/documentation -- or try the wiki at http://git.wiki.kernel.org/ -- jast at 2011-12-09 00:33:18
- !book
- 'Pro Git' is a complete book about git that is available online for free (there's a print version, too): http://progit.org/book/ -- jast at 2011-12-09 00:33:05
- !bottomup
- 'Git from the bottom up' starts with explaining the building blocks of git and proceeds to tell you how they fit together. http://ftp.newartisans.com/pub/git.from.bottom.up.pdf -- jast at 2011-12-09 00:32:48
- !cs
- 'Git for Computer Scientists' explains the basic structures used by git, which is very helpful for understanding its concepts. http://eagain.net/articles/git-for-computer-scientists/ -- jast at 2011-12-09 00:32:27
- !gitext
- Git Extensions is a GUI for git on Windows. It includes Explorer integration and a Visual Studio plugin. http://code.google.com/p/gitextensions/ -- jast at 2011-12-09 00:32:08
- !gitosis
- gitosis is no longer maintained and supported by the author; we usually recommend gitolite instead which has much better documentation and more features: http://github.com/sitaramc/gitolite -- jast at 2011-12-09 00:31:54
- !gitolite
- gitolite allows you to host any number of repositories with extensive access control options for any number of users, using just one system account: http://github.com/sitaramc/gitolite -- jast at 2011-12-09 00:31:41
- !etckeeper
- etckeeper is a collection of tools to let /etc be stored in a git, mercurial, darcs, or bzr repository. It hooks into various package managers. http://kitenet.net/~joey/code/etckeeper/ -- jast at 2011-12-09 00:31:26