CINXE.COM
Git Notes
<!DOCTYPE html> <html> <head> <title>Git Notes</title> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=3" /> <meta content="ImageJ Wiki" property="og:site_name"> <meta content="Git Notes" property="og:title"> <meta content="article" property="og:type"> <meta content="The ImageJ wiki is a community-edited knowledge base on topics relating to ImageJ, a public domain program for processing and analyzing scientific images, and its ecosystem of derivatives and variants, including ImageJ2, Fiji, and others." property="og:description"> <meta content="https://imagej.github.io/develop/git/notes" property="og:url"> <meta content="https://imagej.github.io/media/icons/imagej2.png" property="og:image"> <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> <link rel="manifest" href="/site.webmanifest"> <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"> <meta name="msapplication-TileColor" content="#da532c"> <meta name="theme-color" content="#ffffff"> <link rel="stylesheet" href="/assets/css/lightbox.min.css" /> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/instantsearch.css@7/themes/algolia-min.css"/> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/dygraphs@2.1.0/dist/dygraph.min.js"></script> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/dygraphs@2.1.0/dist/dygraph.min.css" /> <link rel="stylesheet" href="/assets/css/main.css" /> <link rel="stylesheet" href="/assets/css/layout.css"/> <link rel="stylesheet" href="/assets/css/includes.css" /> <link rel="stylesheet" href="/assets/css/timeline.css"/> <link rel="stylesheet" href="/assets/css/dock.css"/> <noscript><link rel="stylesheet" href="/assets/css/noscript.css" /></noscript> <link rel="stylesheet" href="/assets/css/page.css" /> </head> <body class="is-preload"> <!-- Top bar --> <section id="top-bar"> <a href="/"><img id="site-logo" src="/media/icons/imagej2.png"></a> <div id="search-panel"> <div id="search-box"></div> </div> </section> <!-- Page-info --> <div class="page-info"> <a href="https://github.com/imagej/imagej.github.io/commits/main/_pages/develop/git/notes.md">Page history</a> <a href="https://github.com/imagej/imagej.github.io/edit/main/_pages/develop/git/notes.md">Edit this page</a> <a href="/editing">How do I edit this website?</a></div> <section id="left-column" class="sidebar dock"> <!-- Menu --> <div class="menu dockable"> <div class="drag-handle"></div><h3>ImageJ Docs</h3> <ul> <li><a href="/downloads">Download</a></li> <li><details><summary>Learn</summary><ul> <li><details><summary><a href="/learn">ImageJ Basics</a></summary><ul> <li><a href="/tutorials">Tutorials</a></li> <li><a href="/learn/user-guides">User Guides</a></li> <li><a href="/learn/keyboard-shortcuts">Keyboard Shortcuts</a></li> <li><a href="/learn/tips-and-tricks">Tips and Tricks</a></li> <li><a href="/learn/troubleshooting">Troubleshooting</a></li> <li><a href="/learn/faq">Frequently Asked Questions</a></li> <li><details><summary><a href="/platforms">Supported Platforms</a></summary><ul> <li><a href="/platforms/windows">Windows</a></li> <li><a href="/platforms/macos">MacOS</a></li> <li><a href="/platforms/linux">Linux</a></li> <li><a href="/platforms/pi">Raspberry Pi</a></li> <li><a href="/platforms/android">Android</a></li> </ul></details></li> <!-- Learn/ImageJ Basics/Supported Platforms --> <li><details><summary><a href="/formats">File Formats</a></summary><ul> <li><a href="/formats/bio-formats">Bio-Formats</a></li> <li><a href="/formats/video">Video formats</a></li> <li><a href="/formats/quicktime">QuickTime</a></li> <li><a href="/formats/tiff">TIFF</a></li> <li><a href="/formats/pdf">PDF</a></li> <li><a href="/formats/dicom">DICOM</a></li> <li><a href="/formats/lsm">Zeiss LSM</a></li> <li><a href="/formats/olympus">Olympus VSI</a></li> <li><a href="/formats/lurawave">Opera Flex</a></li> <li><a href="/formats/fib-sem">FIB-SEM</a></li> </ul></details></li> <!-- Learn/ImageJ Basics/File Formats --> </ul></details></li> <!-- Learn/ImageJ --> <li><details><summary><a href="/imaging">Scientific Imaging</a></summary><ul> <li><a href="/imaging/principles">Principles of Scientific Imaging</a></li> <li><a href="/imaging/annotating-images">Annotating Images</a></li> <li><a href="/imaging/colocalization-analysis">Colocalization</a></li> <li><a href="/imaging/color-image-processing">Color Image Processing</a></li> <li><a href="/imaging/deconvolution">Deconvolution</a></li> <li><a href="/imaging/image-intensity-processing">Image Intensity Processing</a></li> <li><a href="/imaging/particle-analysis">Particle Analysis</a></li> <li><a href="/imaging/registration">Registration</a></li> <li><a href="/imaging/segmentation">Segmentation</a></li> <li><a href="/imaging/stack-slice-manipulations">Stack-slice Manipulations</a></li> <li><a href="/imaging/t-functions">T-functions</a></li> <li><a href="/imaging/tracking">Tracking</a></li> <li><a href="/imaging/visualization">Visualization</a></li> <li><a href="/imaging/z-functions">Z-functions</a></li> </ul></details></li> <!-- Learn/Scientific Imaging --> </ul></details></li> <!-- Learn --> <li><details open><summary><a href="/plugins">Extend</a></summary><ul> <li><a href="/list-of-extensions">List of Extensions</a></li> <li><details><summary><a href="/update-sites">Update Sites</a></summary><ul> <li><a href="/list-of-update-sites">List of Update Sites</a></li> <li><a href="/update-sites/following">Following an Update Site</a></li> <li><a href="/update-sites/setup">Creating an Update Site</a></li> <li><a href="/update-sites/tos">Terms of Service</a></li> <li><a href="/update-sites/automatic-uploads">Automatic Upload</a></li> <li><a href="/update-sites/core-uploads">Uploading to Core Sites</a></li> <li><a href="/update-sites/faq">Update Sites FAQ</a></li> <li><a href="/update-sites/stats">Statistics</a></li> </ul></details></li> <!-- Extend/Update Sites --> <li><details><summary><a href="/scripting">Scripting</a></summary><ul> <li><a href="/scripting/basics">Scripting Basics</a></li> <li><a href="/scripting/script-editor">Script Editor</a></li> <li><a href="/scripting/parameters">Parameters</a></li> <li><a href="/scripting/user-input">User Input</a></li> <li><a href="/scripting/auto-imports">Auto Import</a></li> <li><a href="/scripting/templates">Templates</a></li> <li><a href="/scripting/batch">Batch Processing</a></li> <li><a href="/scripting/headless">Running Headlessly</a></li> <li><a href="/scripting/comparisons">Scripting Comparisons</a></li> <li><a href="/scripting/toolbox">Toolbox</a></li> <li><details><summary>Languages</summary><ul> <li><a href="/scripting/beanshell">BeanShell Scripting</a></li> <li><a href="/scripting/groovy">Groovy Scripting</a></li> <li><a href="/scripting/macro">ImageJ Macro</a></li> <li><a href="/scripting/javascript">JavaScript</a></li> <li><a href="/scripting/clojure">Lisp (Clojure)</a></li> <li><a href="/scripting/matlab">MATLAB</a></li> <li><a href="/scripting/jython">Python (Jython)</a></li> <li><a href="/scripting/python">Python (native)</a></li> <li><a href="/scripting/renjin">R (Renjin)</a></li> <li><a href="/scripting/jruby">Ruby (JRuby)</a></li> <li><a href="/scripting/scala">Scala Scripting</a></li> </ul></details></li> <!-- Extend/Scripting/Languages --> </ul></details></li> <!-- Extend/Scripting --> <li><details open><summary><a href="/develop">Development</a></summary><ul> <li><a href="/develop/philosophy">Philosophy</a></li> <li><a href="/develop/architecture">Architecture</a></li> <li><a href="/develop/source">Source code</a></li> <li><a href="/develop/project-management">Project management</a></li> <li><a href="/develop/coding-style">Coding style</a></li> <li><a href="/develop/javadoc">Using Javadoc</a></li> <li><a href="/develop/debugging">Debugging</a></li> <li><a href="/develop/wish-list">Wish list</a></li> <li><details><summary>Tools</summary><ul> <li><a href="/develop/github">GitHub</a></li> <li><a href="/develop/maven">Maven</a></li> <li><a href="/develop/ci">CI/CD</a></li> <li><a href="/develop/dotfiles">Dotfiles</a></li> <li><details><summary><a href="/develop/ides">IDEs</a></summary><ul> <li><a href="/develop/eclipse">Eclipse</a></li> <li><a href="/develop/netbeans">NetBeans</a></li> <li><a href="/develop/intellij">IntelliJ IDEA</a></li> <li><a href="/develop/command-line">Command Line</a></li> </ul></details></li> </ul></details></li> <!-- Extend/Development/Tools --> <li><details><summary>Guides</summary><ul> <li><a href="/develop/plugins">Writing plugins</a></li> <li><a href="/develop/improving-the-code">Contributing to a plugin</a></li> <li><a href="/develop/releasing">Development lifecycle</a></li> <li><a href="/develop/building-a-pom">Building a POM</a></li> <li><a href="/develop/debugging-exercises">Hands-on debugging</a></li> <li><a href="/develop/writing-ops">Adding new ops</a></li> <li><a href="/develop/formats">Adding new formats</a></li> <li><a href="/develop/native-libraries">Using native libraries</a></li> <li><a href="/develop/tips">Tips for developers</a></li> <li><a href="/develop/cpp-tips">Tips for C++ developers</a></li> <li><a href="/develop/ij1-plugins">ImageJ 1.x plugins</a></li> <li><a href="/develop/versioning">Versioning</a></li> <li><a href="/develop/logging">Logging</a></li> <li><a href="/develop/uber-jars">Uber-JARs</a></li> </ul></details></li> <!-- Extend/Development/Guides --> <li><details open><summary><a href="/develop/git">Git</a></summary><ul> <li><a href="/develop/git/eclipse">Git in Eclipse (EGit)</a></li> <li><a href="/develop/git/mini-howto">Git mini howto</a></li> <li><a href="/develop/git/workshop">Git workshop</a></li> <li><a href="/develop/git/conflicts">Git conflicts</a></li> <li><a href="/develop/git/topic-branches">Git topic branches</a></li> <li><a class="current-page">Git notes</a></li> <li><a href="/develop/git/reflogs">Git reflogs</a></li> <li><a href="/develop/git/submodules">Git submodules</a></li> <li><a href="/develop/git/pinpoint-regressions">How to pinpoint regressions</a></li> <li><a href="/develop/git/publish-a-repository">How to publish a git repository</a></li> <li><a href="/develop/git/extract-a-subproject">How to extract a subproject</a></li> </ul></details></li> <!-- Extend/Development/Git --> </ul></details></li> <!-- Extend/Development --> </ul></details></li> <!-- Extend --> <li><details><summary><a href="/contribute">Contribute</a></summary><ul> <li><a href="/contribute/citing">Citing</a></li> <li><a href="/people">Contributors</a></li> <li><a href="/orgs">Organizations</a></li> <li><a href="/contribute/governance">Governance</a></li> <li><a href="/contribute/funding">Funding</a></li> <li><a href="/contribute/fiji">Contributing to Fiji</a></li> <li><details><summary><a href="/licensing">Licensing</a></summary><ul> <li><details><summary><a href="/licensing/open-source">Open Source</a></summary><ul> <li><a href="/licensing/apache">Apache</a></li> <li><a href="/licensing/bsd">BSD</a></li> <li><a href="/licensing/epl">EPL</a></li> <li><a href="/licensing/gpl">GPL</a></li> <li><a href="/licensing/lgpl">LGPL</a></li> <li><a href="/licensing/mit">MIT</a></li> <li><a href="/licensing/public-domain">Public domain</a></li> <li><a href="/licensing/big">BIG</a></li> </ul></details></li> <!-- Contribute/Licensing/Open Source --> <li><a href="/licensing/closed-source">Proprietary</a></li> </ul></details></li> <!-- Contribute/Licensing --> <li><details><summary><a href="/editing">Editing the Wiki</a></summary><ul> <li><a href="/editing/advanced">Advanced Editing</a></li> <li><a href="/editing/buttons">Buttons</a></li> <li><a href="/editing/citations">Citations</a></li> <li><a href="/editing/code">Source Code</a></li> <li><a href="/editing/debugging">Debugging</a></li> <li><a href="/editing/headers">Headers</a></li> <li><a href="/editing/icons">Icons</a></li> <li><a href="/editing/images">Images</a></li> <li><a href="/editing/keys">Keyboard Shortcuts</a></li> <li><a href="/editing/linking">Linking</a></li> <li><a href="/editing/math">Math Expressions</a></li> <li><a href="/editing/menu-paths">Menu Paths</a></li> <li><a href="/editing/navigation">Navigation</a></li> <li><a href="/editing/notices">Notices</a></li> <li><a href="/editing/people">People</a></li> <li><a href="/editing/pitfalls">Pitfalls</a></li> <li><a href="/editing/quizzes">Quizzes</a></li> <li><a href="/editing/statbox">Statbox</a></li> <li><a href="/editing/symbols">Symbols</a></li> <li><a href="/editing/tables">Tables</a></li> <li><a href="/editing/timelines">Timelines</a></li> <li><a href="/editing/tooltips">Tooltips</a></li> <li><a href="/editing/videos">Videos</a></li> <li><a href="/editing/whitespace">Whitespace</a></li> </ul></details></li> <!-- Contribute/Editing the Wiki --> </ul></details></li> <!-- Contribute --> <li><details><summary><a href="/discuss">Discuss</a></summary><ul> <li><a href="/discuss/bugs">Reporting Issues</a></li> <li><a href="/discuss/mailing-lists">Mailing Lists</a></li> <li><a href="/discuss/chat">Chat</a></li> </ul></details></li> <!-- Discuss --> <li><details><summary>Explore</summary><ul> <li><a href="/news">News</a></li> <li><details><summary><a href="/events">Events</a></summary><ul> <li><a href="/events/presentations">Presentations</a></li> <li><a href="/events/conferences">Conferences</a></li> <li><a href="/events/hackathons">Hackathons</a></li> <li><a href="/events">More...</a></li> </ul></details></li> <!-- Discuss/Events --> <li><details><summary><a href="/libs">Libraries</a></summary><ul> <li><a href="/libs/imagej-ops">ImageJ Ops</a></li> <li><a href="/libs/imagej-common">ImageJ Common</a></li> <li><a href="/libs/imagej-legacy">ImageJ Legacy</a></li> <li><a href="/libs/scijava">SciJava</a></li> <li><a href="/libs/scifio">SCIFIO</a></li> <li><details><summary><a href="/libs/imglib2">ImgLib2</a></summary><ul> <li><a href="/libs/imglib2/getting-started">Getting Started</a></li> <li><a href="/libs/imglib2/accessors">Accessors</a></li> <li><a href="/libs/imglib2/accessibles">Accessibles</a></li> <li><a href="/libs/imglib2/examples">Examples</a></li> <li><a href="/libs/imglib2/workshop-introductory">Introductory Workshop</a></li> <li><a href="/libs/imglib2/workshop-advanced">Advanced Workshop</a></li> <li><a href="/libs/imglib2/matlab">ImgLib2 images in MATLAB</a></li> <li><a href="/libs/imglib2/benchmarks">Benchmarks</a></li> <li><a href="/libs/imglib2/faq">FAQ</a></li> <li><a href="/libs/imglib2/developing">Developing ImgLib2</a></li> <li><a href="/libs/imglib2/discussion">ImgLib2 Discussion</a></li> </ul></details></li> <!-- Explore/Libraries/ImgLib2 --> <li><a href="/libs">More...</a></li> </ul></details></li> <!-- Explore/Libraries --> <li><details><summary><a href="/software">Software</a></summary><ul> <li><a href="/software/nih-image">NIH Image</a></li> <li><a href="/software/imagej">ImageJ</a></li> <li><a href="/software/imagej2">ImageJ2</a></li> <li><a href="/software/fiji">Fiji</a></li> <li><a href="/software">More...</a></li> </ul></details></li> <!-- Explore/Software --> </ul></details></li> <!-- Explore --> </ul> </div> </section> <section id="right-column" class="sidebar dock"> <!-- Vital stats --> <!-- Table of contents --> <div id="toc" class="toc menu dockable"> <div class="drag-handle"></div> <h3>Page contents</h3> <ul data-toc="#content" data-toc-headings="h1,h2,h3,h4,h5,h6"></ul> </div> </section> <!-- Page title --> <div class="container"> <header class="major special"> <h1>Git Notes</h1> </header> </div> <!-- Nav bar --> <!-- Main content --> <section id="page" class="main style1"> <div class="container"> <div class="box alt"></div> <div id="content" class="page-content"> <p>Here are some common git operations for which we often find ourselves searching.</p> <h2 id="workflow">Workflow</h2> <h3 id="checkout-a-remote-branch-develop-and-keep-it-linked-to-the-origin">Checkout a remote branch ‘develop’ and keep it linked to the origin</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git checkout <span class="nt">-t</span> origin/develop </code></pre></div></div> <p>It should report: “Branch develop set up to track remote branch develop from origin.”</p> <h3 id="list-all-branches-both-local-and-remote">List all branches (both local and remote)</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git branch <span class="nt">-a</span> </code></pre></div></div> <h3 id="list-local-branches-and-their-corresponding-upstream-remote-branches">List local branches and their corresponding upstream remote branches</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git branch <span class="nt">-vv</span> </code></pre></div></div> <h3 id="revert-local-changes-to-a-file-prior-to-commit">Revert local changes to a file (prior to commit)</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git checkout file </code></pre></div></div> <h3 id="revert-all-local-changes-to-the-current-subtree-prior-to-commit">Revert all local changes to the current subtree (prior to commit)</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git checkout <span class="nb">.</span> </code></pre></div></div> <h3 id="cute-hack-to-revert-all-local-changes-prior-to-commit">Cute hack to revert all local changes (prior to commit)</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git stash git stash drop </code></pre></div></div> <h3 id="undo-a-commit">Undo a commit</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git reset <span class="nt">--soft</span> HEAD^ </code></pre></div></div> <h3 id="undo-multiple-commits">Undo multiple commits</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git reset <span class="nt">--soft</span> HEAD@<span class="o">{</span>2<span class="o">}</span> </code></pre></div></div> <p>Where <code class="language-plaintext highlighter-rouge">2</code> is the number of commits to undo.</p> <h3 id="update-to-latest-head-preserving-local-changes-and-local-commits-on-top">Update to latest HEAD, preserving local changes and local commits on top</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git stash git pull <span class="nt">--rebase</span> git stash pop </code></pre></div></div> <h3 id="push-changes-on-master-to-origin">Push changes on master to origin</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git push origin master </code></pre></div></div> <h3 id="delete-untracked-files-and-directories">Delete untracked files and directories</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git clean <span class="nt">-df</span> </code></pre></div></div> <h3 id="interactively-stage-patches-from-changed-files">Interactively stage patches from changed file(s)</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git add <span class="nt">-p</span> &lt<span class="p">;</span>path&gt<span class="p">;</span> </code></pre></div></div> <h3 id="roll-back-the-last-commits-changes-to-a-particular-file">Roll back the last commit’s changes to a particular file</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git checkout HEAD@<span class="o">{</span>1<span class="o">}</span> <span class="nt">--</span> file </code></pre></div></div> <h2 id="branches">Branches</h2> <h3 id="branch-master-to-a-new-local-branch-new_branch">Branch master to a new local branch “new_branch”</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git checkout <span class="nt">-b</span> new_branch master </code></pre></div></div> <h3 id="push-local-branch-to-remote">Push local branch to remote</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git push <span class="nt">-u</span> origin new_branch </code></pre></div></div> <h3 id="make-the-current-local-branch-start-tracking-a-corresponding-remote-branch">Make the current local branch start tracking a corresponding remote branch</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git branch <span class="nt">--set-upstream-to</span> origin/new_branch </code></pre></div></div> <p>This is not necessary if you used <code class="language-plaintext highlighter-rouge">git push -u</code> as suggested above.</p> <h3 id="list-the-local-branches-that-have-already-been-merged-to-this-one">List the local branches that have already been merged to this one</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git branch <span class="nt">--merged</span> </code></pre></div></div> <h3 id="diff-a-file-between-two-branches">Diff a file between two branches</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git diff branch1 branch2 <span class="nt">--</span> file </code></pre></div></div> <h3 id="delete-a-branch-both-locally-and-remotely">Delete a branch both locally and remotely</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git branch <span class="nt">-rd</span> origin/branch_to_kill git branch <span class="nt">-d</span> branch_to_kill git push origin :branch_to_kill </code></pre></div></div> <h3 id="move-a-commit-from-bad_branch-to-good_branch">Move a commit from bad_branch to good_branch</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># First cherry-pick the commit onto the correct branch:</span> git checkout good_branch git cherry-pick deadbeef <span class="c"># Then remove the commit from the bad branch:</span> git checkout bad_branch git rebase <span class="nt">-i</span> <span class="c"># Change the undesirable commit to "noop"</span> </code></pre></div></div> <p>For more on branching, see <a href="/develop/git/topic-branches">Git topic branches</a>.</p> <h3 id="rename-the-current-branch">Rename the current branch</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git branch <span class="nt">-m</span> <new branch name> </code></pre></div></div> <h2 id="git--svn">Git + SVN</h2> <h3 id="clone-an-svn-repository-to-a-local-git-repository">Clone an SVN repository to a local Git repository</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git svn clone <span class="nt">-s</span> http://svn.code.sf.net/p/jhotdraw/svn/ </code></pre></div></div> <h3 id="commit-and-push-changes-even-with-local-changes-in-the-working-copy">Commit and push changes, even with local changes in the working copy</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git commit git stash git svn dcommit git stash pop </code></pre></div></div> <h3 id="update-to-latest-trunk-preserving-local-changes-and-local-commits-on-top">Update to latest trunk, preserving local changes and local commits on top</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git stash git svn rebase git stash pop </code></pre></div></div> <h2 id="searching">Searching</h2> <h3 id="recursively-search-for-helloworldfile-and-display-the-most-recent-commit-modifying-it">Recursively search for HelloWorld.file (and display the most recent commit modifying it)</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git ls-tree <span class="nt">-r</span> HEAD | <span class="nb">grep </span>HelloWorld.file </code></pre></div></div> <h3 id="recursively-search-for-all-files-containing-the-phrase-import-helloworld">Recursively search for all files containing the phrase ‘import HelloWorld’</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git <span class="nb">grep</span> <span class="s1">'import HelloWorld'</span> </code></pre></div></div> <h3 id="recursively-search-for-all-files-in-any-topic-branch-containing-the-phrase-import-helloworld">Recursively search for all files <em>in any topic branch</em> containing the phrase ‘import HelloWorld’</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git <span class="nb">grep</span> <span class="s1">'import HelloWorld'</span> <span class="si">$(</span>git rev-list <span class="nt">--all</span> <span class="nt">--no-walk</span><span class="si">)</span> </code></pre></div></div> <h2 id="history">History</h2> <h3 id="display-a-log-with-colored-word-diffs">Display a log with colored word diffs</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git log <span class="nt">-p</span> <span class="nt">--color-words</span> </code></pre></div></div> <p>Add <code class="language-plaintext highlighter-rouge">-S</code> to <code class="language-plaintext highlighter-rouge">less</code> to virtually wrap long lines.</p> <h3 id="display-a-diff-with-colored-words-between-a-file-in-one-commit-and-a-file-in-another-commit">Display a diff with colored words between a file in one commit and a file in another commit</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git diff <commitA>:<file> <commitB>:<file> <span class="nt">--color-words</span> </code></pre></div></div> <p>Add <code class="language-plaintext highlighter-rouge">-S</code> to <code class="language-plaintext highlighter-rouge">less</code> to virtually wrap long lines.</p> <h3 id="display-all-contributing-authors-of-a-project-including-their-e-mail">Display all contributing authors of a project including their e-mail</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git log <span class="nt">--format</span><span class="o">=</span><span class="s1">'%aN <%ae&>'</span> | <span class="nb">sort</span> <span class="nt">-u</span> </code></pre></div></div> <p>Respects <code class="language-plaintext highlighter-rouge">.mailmap</code>.</p> <h3 id="viewing-the-history-for-a-single-file">Viewing the history for a single file</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git log <span class="nt">--follow</span> HelloWorld.file </code></pre></div></div> <p>This history is algorithmically calculated and must be carefully preserved.</p> <p>Simultaneous (within a single commit) significant changes + file renaming (including relocation) can prevent the algorithm from successfully tracing the file’s history, or cause it to begin tracing the wrong file.</p> <p>Keeping code changes separate from renames should prevent this confusion, but it is good practice to check <code class="language-plaintext highlighter-rouge">log --follow</code> before pushing to a remote repository.</p> <h3 id="see-commits-in-branch-b-not-present-in-branch-a">See commits in branch B not present in branch A</h3> <p>There are two main options. The first:</p> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git log A..B </code></pre></div></div> <p>will display the different commits in full git log format. NB: the <code class="language-plaintext highlighter-rouge">..</code> between commits is important to sure only the difference in commits is considered.</p> <p>The second:</p> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git cherry <span class="nt">-v</span> A B </code></pre></div></div> <p>will display a simple list of the different commits, one per line, with commit message and hash.</p> <h2 id="scripts">Scripts</h2> <p>There are some Git-related scripts available in the <a href="https://github.com/scijava/scijava-scripts">scijava-scripts</a> project.</p> <h3 id="list-information-about-all-remote-branches-including-last-author-commit-date-and-unmerged-commit-count">List information about all remote branches including last author, commit date and unmerged commit count</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$SCIJAVA</span>/bin/remote-branch-info.sh </code></pre></div></div> <h2 id="advanced-andor-dangerous">Advanced and/or dangerous</h2> <h3 id="create-a-repository-with-gw-permissions">Create a repository with g+w permissions</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git init <span class="nt">--shared</span><span class="o">=</span>group </code></pre></div></div> <p>Or for a bare repository:</p> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git init <span class="nt">--bare</span> <span class="nt">--shared</span><span class="o">=</span>group </code></pre></div></div> <p>(Bare repositories are meant for a remote server repository that all your coworkers push into and pull/fetch from.)</p> <h3 id="push-all-remote-branches-from-one-remote-eg-origin-to-another-eg-github">Push all remote branches from one remote (e.g., “origin”) to another (e.g., “github”)</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git push github <span class="si">$(</span>git <span class="k">for</span><span class="nt">-each-ref</span> refs/remotes/origin | <span class="se">\</span> <span class="nb">grep</span> <span class="nt">-v</span> HEAD | <span class="se">\</span> <span class="k">while </span><span class="nb">read </span>sha1 <span class="nb">type </span>ref <span class="k">do </span><span class="nb">echo</span> <span class="nv">$ref</span>:refs/heads/<span class="k">${</span><span class="nv">ref</span><span class="p">#refs/remotes/origin/</span><span class="k">}</span> <span class="k">done</span><span class="si">)</span> </code></pre></div></div> <h3 id="another-way-to-push-all-remote-branches-between-remotes">Another way to push all remote branches between remotes</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">eval </span>git push github <span class="si">$(</span>git <span class="k">for</span><span class="nt">-each-ref</span> | <span class="se">\</span> <span class="nb">sed</span> <span class="nt">-n</span> <span class="s1">'s/.*\t\(refs\/remotes\/origin\/\(.*\)\)$/\1:refs\/heads\/\2/p'</span><span class="si">)</span> </code></pre></div></div> <h3 id="fully-garbage-collect-and-compact-the-repository-deletes-all-orphaned-refs">Fully garbage collect and compact the repository (deletes all orphaned refs!)</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git reset <span class="nt">--hard</span> git <span class="k">for</span><span class="nt">-each-ref</span> <span class="nt">--format</span><span class="o">=</span><span class="s2">"%(refname)"</span> refs/original/ | <span class="se">\</span> xargs <span class="nt">-n</span> 1 git update-ref <span class="nt">-d</span> git reflog expire <span class="nt">--expire</span><span class="o">=</span>now <span class="nt">--all</span> git gc <span class="nt">--aggressive</span> <span class="nt">--prune</span><span class="o">=</span>now </code></pre></div></div> <h2 id="rewriting-history">Rewriting history</h2> <h3 id="split-a-subdirectory-into-a-separate-git-repository">Split a subdirectory into a separate git repository</h3> <p>See these posts on Stack Overflow:</p> <ul> <li><a href="http://stackoverflow.com/questions/359424/detach-subdirectory-into-separate-git-repository">Detach subdirectory into separate Git repository</a></li> <li><a href="http://stackoverflow.com/questions/6638019/detach-subdirectory-that-was-renamed-into-a-new-repo">Detach subdirectory (that was renamed!) into a new repo</a></li> <li><a href="http://stackoverflow.com/questions/3910412/split-large-git-repository-into-many-smaller-ones">Split large Git repository into many smaller ones</a></li> </ul> <h3 id="throw-away-git-svn-id-metadata">Throw away git-svn-id metadata</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git filter-branch <span class="nt">--msg-filter</span> <span class="s1">' sed -e "/^git-svn-id:/d" '</span> </code></pre></div></div> <h3 id="combine-the-first-two-commits-of-a-git-repository">Combine the first two commits of a Git repository</h3> <p>See this post on Stack Overflow:</p> <ul> <li><a href="http://stackoverflow.com/questions/435646/how-do-i-combine-the-first-two-commits-of-a-git-repository">How do I combine the first two commits of a Git repository?</a></li> </ul> <h3 id="change-the-author-of-a-commit">Change the author of a commit</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git commit <span class="nt">--amend</span> <span class="nt">--author</span><span class="o">=</span><span class="s2">"Author Name"</span> </code></pre></div></div> <h3 id="change-the-author-of-many-commits">Change the author of many commits</h3> <p>See this post on Stack Overflow:</p> <ul> <li><a href="http://stackoverflow.com/questions/750172/how-do-i-change-the-author-of-a-commit-in-git">How do I change the author of a commit in git?</a></li> </ul> <h3 id="merge-multiple-repositories">Merge multiple repositories</h3> <p>See these posts on Stack Overflow:</p> <ul> <li><a href="http://stackoverflow.com/questions/277029/combining-multiple-git-repositories">Combining multiple git repositories</a></li> <li><a href="http://stackoverflow.com/questions/4039682/git-retroactively-introduce-several-merges">git: Retroactively introduce several merges</a></li> </ul> <h2 id="tutorials">Tutorials</h2> <h3 id="creating-a-shared-remote-repository">Creating a shared remote repository</h3> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ssh you@server <span class="nb">mkdir </span>repos/remote.git <span class="nb">cd </span>repos/remote.git git <span class="nt">--bare</span> init <span class="nt">--shared</span><span class="o">=</span>group <span class="nb">logout cd</span> ~/local git remote add origin ssh://you@server/home/you/remote.git git push origin master git config branch.master.remote origin git config branch.master.merge refs/heads/master </code></pre></div></div> <p>Creates a bare remote repository at <a href="Ssh___server_home_you_remote.git"><code class="language-plaintext highlighter-rouge">ssh://server/home/you/remote.git</code></a> that tracks your local repository in <code class="language-plaintext highlighter-rouge">/home/you/local</code>. Adopted from <a href="http://toolmantim.com/articles/setting_up_a_new_remote_git_repository">Tim Lucas</a>.</p> <h3 id="displaying-a-filtered-set-of-commits">Displaying a filtered set of commits</h3> <p>Assume you want to see commits in branch <code class="language-plaintext highlighter-rouge">stephan</code>, but only those that are <u>not</u> part of the history of branch <code class="language-plaintext highlighter-rouge">saalfeld</code>:</p> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git log stephan ^saalfeld </code></pre></div></div> <p>More realistically, if you want to see all the commits which are in a topic branch, but not yet merged into master:</p> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git log <span class="nt">--all</span> ^master </code></pre></div></div> <p>If you want to see the changes which come from a topic branch which was merged in commit <code class="language-plaintext highlighter-rouge">deadbeef</code>, use this command line:</p> <div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git log deadbeef^..deadbeef^2 </code></pre></div></div> <p>Explanation: <code class="language-plaintext highlighter-rouge">deadbeef</code> is a merge commit, so its first parent (<code class="language-plaintext highlighter-rouge">deadbeef^</code>, can also be written as <code class="language-plaintext highlighter-rouge">deadbeef^1</code>) was the current <code class="language-plaintext highlighter-rouge">HEAD</code> when the merge was performed, and the second parent (<code class="language-plaintext highlighter-rouge">deadbeef^2</code>) is the tip of the branch which was merged. The argument <code class="language-plaintext highlighter-rouge">A..B</code> is short form of <code class="language-plaintext highlighter-rouge">^A B</code>, i.e. all commits reachable from <code class="language-plaintext highlighter-rouge">B</code> excluding those which are also reachable from <code class="language-plaintext highlighter-rouge">A</code>.</p> </div> </div> </section> <!-- Footer --> <section id="footer"> <ul class="icons"> <li><a href="https://forum.image.sc/tag/imagej" class="icon alt"><img src="/media/icons/image-sc.png" width="24" style="vertical-align: middle; margin-top: -10px"><span class="label">Forum</span></a></li> <li><a href="https://twitter.com/hashtag/ImageJ" class="icon brands alt fa-twitter"><span class="label">Twitter</span></a></li> <li><a href="https://github.com/imagej" class="icon brands alt fa-github"><span class="label">GitHub</span></a></li> </ul> <ul class="copyright"> <li>Design: <a href="http://html5up.net">HTML5 UP</a></li> </ul> </section> <!-- Hamburger menu --> <nav role="navigation"> <div id="ham-toggle"> <input type="checkbox" /> <span></span> <!-- top bun --> <span></span> <!-- hamburger --> <span></span> <!-- bottom bun --> <ul id="ham-menu"> <div class="menu"><h3>ImageJ Docs</h3> <ul> <li><a href="/downloads">Download</a></li> <li><details><summary>Learn</summary><ul> <li><details><summary><a href="/learn">ImageJ Basics</a></summary><ul> <li><a href="/tutorials">Tutorials</a></li> <li><a href="/learn/user-guides">User Guides</a></li> <li><a href="/learn/keyboard-shortcuts">Keyboard Shortcuts</a></li> <li><a href="/learn/tips-and-tricks">Tips and Tricks</a></li> <li><a href="/learn/troubleshooting">Troubleshooting</a></li> <li><a href="/learn/faq">Frequently Asked Questions</a></li> <li><details><summary><a href="/platforms">Supported Platforms</a></summary><ul> <li><a href="/platforms/windows">Windows</a></li> <li><a href="/platforms/macos">MacOS</a></li> <li><a href="/platforms/linux">Linux</a></li> <li><a href="/platforms/pi">Raspberry Pi</a></li> <li><a href="/platforms/android">Android</a></li> </ul></details></li> <!-- Learn/ImageJ Basics/Supported Platforms --> <li><details><summary><a href="/formats">File Formats</a></summary><ul> <li><a href="/formats/bio-formats">Bio-Formats</a></li> <li><a href="/formats/video">Video formats</a></li> <li><a href="/formats/quicktime">QuickTime</a></li> <li><a href="/formats/tiff">TIFF</a></li> <li><a href="/formats/pdf">PDF</a></li> <li><a href="/formats/dicom">DICOM</a></li> <li><a href="/formats/lsm">Zeiss LSM</a></li> <li><a href="/formats/olympus">Olympus VSI</a></li> <li><a href="/formats/lurawave">Opera Flex</a></li> <li><a href="/formats/fib-sem">FIB-SEM</a></li> </ul></details></li> <!-- Learn/ImageJ Basics/File Formats --> </ul></details></li> <!-- Learn/ImageJ --> <li><details><summary><a href="/imaging">Scientific Imaging</a></summary><ul> <li><a href="/imaging/principles">Principles of Scientific Imaging</a></li> <li><a href="/imaging/annotating-images">Annotating Images</a></li> <li><a href="/imaging/colocalization-analysis">Colocalization</a></li> <li><a href="/imaging/color-image-processing">Color Image Processing</a></li> <li><a href="/imaging/deconvolution">Deconvolution</a></li> <li><a href="/imaging/image-intensity-processing">Image Intensity Processing</a></li> <li><a href="/imaging/particle-analysis">Particle Analysis</a></li> <li><a href="/imaging/registration">Registration</a></li> <li><a href="/imaging/segmentation">Segmentation</a></li> <li><a href="/imaging/stack-slice-manipulations">Stack-slice Manipulations</a></li> <li><a href="/imaging/t-functions">T-functions</a></li> <li><a href="/imaging/tracking">Tracking</a></li> <li><a href="/imaging/visualization">Visualization</a></li> <li><a href="/imaging/z-functions">Z-functions</a></li> </ul></details></li> <!-- Learn/Scientific Imaging --> </ul></details></li> <!-- Learn --> <li><details open><summary><a href="/plugins">Extend</a></summary><ul> <li><a href="/list-of-extensions">List of Extensions</a></li> <li><details><summary><a href="/update-sites">Update Sites</a></summary><ul> <li><a href="/list-of-update-sites">List of Update Sites</a></li> <li><a href="/update-sites/following">Following an Update Site</a></li> <li><a href="/update-sites/setup">Creating an Update Site</a></li> <li><a href="/update-sites/tos">Terms of Service</a></li> <li><a href="/update-sites/automatic-uploads">Automatic Upload</a></li> <li><a href="/update-sites/core-uploads">Uploading to Core Sites</a></li> <li><a href="/update-sites/faq">Update Sites FAQ</a></li> <li><a href="/update-sites/stats">Statistics</a></li> </ul></details></li> <!-- Extend/Update Sites --> <li><details><summary><a href="/scripting">Scripting</a></summary><ul> <li><a href="/scripting/basics">Scripting Basics</a></li> <li><a href="/scripting/script-editor">Script Editor</a></li> <li><a href="/scripting/parameters">Parameters</a></li> <li><a href="/scripting/user-input">User Input</a></li> <li><a href="/scripting/auto-imports">Auto Import</a></li> <li><a href="/scripting/templates">Templates</a></li> <li><a href="/scripting/batch">Batch Processing</a></li> <li><a href="/scripting/headless">Running Headlessly</a></li> <li><a href="/scripting/comparisons">Scripting Comparisons</a></li> <li><a href="/scripting/toolbox">Toolbox</a></li> <li><details><summary>Languages</summary><ul> <li><a href="/scripting/beanshell">BeanShell Scripting</a></li> <li><a href="/scripting/groovy">Groovy Scripting</a></li> <li><a href="/scripting/macro">ImageJ Macro</a></li> <li><a href="/scripting/javascript">JavaScript</a></li> <li><a href="/scripting/clojure">Lisp (Clojure)</a></li> <li><a href="/scripting/matlab">MATLAB</a></li> <li><a href="/scripting/jython">Python (Jython)</a></li> <li><a href="/scripting/python">Python (native)</a></li> <li><a href="/scripting/renjin">R (Renjin)</a></li> <li><a href="/scripting/jruby">Ruby (JRuby)</a></li> <li><a href="/scripting/scala">Scala Scripting</a></li> </ul></details></li> <!-- Extend/Scripting/Languages --> </ul></details></li> <!-- Extend/Scripting --> <li><details open><summary><a href="/develop">Development</a></summary><ul> <li><a href="/develop/philosophy">Philosophy</a></li> <li><a href="/develop/architecture">Architecture</a></li> <li><a href="/develop/source">Source code</a></li> <li><a href="/develop/project-management">Project management</a></li> <li><a href="/develop/coding-style">Coding style</a></li> <li><a href="/develop/javadoc">Using Javadoc</a></li> <li><a href="/develop/debugging">Debugging</a></li> <li><a href="/develop/wish-list">Wish list</a></li> <li><details><summary>Tools</summary><ul> <li><a href="/develop/github">GitHub</a></li> <li><a href="/develop/maven">Maven</a></li> <li><a href="/develop/ci">CI/CD</a></li> <li><a href="/develop/dotfiles">Dotfiles</a></li> <li><details><summary><a href="/develop/ides">IDEs</a></summary><ul> <li><a href="/develop/eclipse">Eclipse</a></li> <li><a href="/develop/netbeans">NetBeans</a></li> <li><a href="/develop/intellij">IntelliJ IDEA</a></li> <li><a href="/develop/command-line">Command Line</a></li> </ul></details></li> </ul></details></li> <!-- Extend/Development/Tools --> <li><details><summary>Guides</summary><ul> <li><a href="/develop/plugins">Writing plugins</a></li> <li><a href="/develop/improving-the-code">Contributing to a plugin</a></li> <li><a href="/develop/releasing">Development lifecycle</a></li> <li><a href="/develop/building-a-pom">Building a POM</a></li> <li><a href="/develop/debugging-exercises">Hands-on debugging</a></li> <li><a href="/develop/writing-ops">Adding new ops</a></li> <li><a href="/develop/formats">Adding new formats</a></li> <li><a href="/develop/native-libraries">Using native libraries</a></li> <li><a href="/develop/tips">Tips for developers</a></li> <li><a href="/develop/cpp-tips">Tips for C++ developers</a></li> <li><a href="/develop/ij1-plugins">ImageJ 1.x plugins</a></li> <li><a href="/develop/versioning">Versioning</a></li> <li><a href="/develop/logging">Logging</a></li> <li><a href="/develop/uber-jars">Uber-JARs</a></li> </ul></details></li> <!-- Extend/Development/Guides --> <li><details open><summary><a href="/develop/git">Git</a></summary><ul> <li><a href="/develop/git/eclipse">Git in Eclipse (EGit)</a></li> <li><a href="/develop/git/mini-howto">Git mini howto</a></li> <li><a href="/develop/git/workshop">Git workshop</a></li> <li><a href="/develop/git/conflicts">Git conflicts</a></li> <li><a href="/develop/git/topic-branches">Git topic branches</a></li> <li><a class="current-page">Git notes</a></li> <li><a href="/develop/git/reflogs">Git reflogs</a></li> <li><a href="/develop/git/submodules">Git submodules</a></li> <li><a href="/develop/git/pinpoint-regressions">How to pinpoint regressions</a></li> <li><a href="/develop/git/publish-a-repository">How to publish a git repository</a></li> <li><a href="/develop/git/extract-a-subproject">How to extract a subproject</a></li> </ul></details></li> <!-- Extend/Development/Git --> </ul></details></li> <!-- Extend/Development --> </ul></details></li> <!-- Extend --> <li><details><summary><a href="/contribute">Contribute</a></summary><ul> <li><a href="/contribute/citing">Citing</a></li> <li><a href="/people">Contributors</a></li> <li><a href="/orgs">Organizations</a></li> <li><a href="/contribute/governance">Governance</a></li> <li><a href="/contribute/funding">Funding</a></li> <li><a href="/contribute/fiji">Contributing to Fiji</a></li> <li><details><summary><a href="/licensing">Licensing</a></summary><ul> <li><details><summary><a href="/licensing/open-source">Open Source</a></summary><ul> <li><a href="/licensing/apache">Apache</a></li> <li><a href="/licensing/bsd">BSD</a></li> <li><a href="/licensing/epl">EPL</a></li> <li><a href="/licensing/gpl">GPL</a></li> <li><a href="/licensing/lgpl">LGPL</a></li> <li><a href="/licensing/mit">MIT</a></li> <li><a href="/licensing/public-domain">Public domain</a></li> <li><a href="/licensing/big">BIG</a></li> </ul></details></li> <!-- Contribute/Licensing/Open Source --> <li><a href="/licensing/closed-source">Proprietary</a></li> </ul></details></li> <!-- Contribute/Licensing --> <li><details><summary><a href="/editing">Editing the Wiki</a></summary><ul> <li><a href="/editing/advanced">Advanced Editing</a></li> <li><a href="/editing/buttons">Buttons</a></li> <li><a href="/editing/citations">Citations</a></li> <li><a href="/editing/code">Source Code</a></li> <li><a href="/editing/debugging">Debugging</a></li> <li><a href="/editing/headers">Headers</a></li> <li><a href="/editing/icons">Icons</a></li> <li><a href="/editing/images">Images</a></li> <li><a href="/editing/keys">Keyboard Shortcuts</a></li> <li><a href="/editing/linking">Linking</a></li> <li><a href="/editing/math">Math Expressions</a></li> <li><a href="/editing/menu-paths">Menu Paths</a></li> <li><a href="/editing/navigation">Navigation</a></li> <li><a href="/editing/notices">Notices</a></li> <li><a href="/editing/people">People</a></li> <li><a href="/editing/pitfalls">Pitfalls</a></li> <li><a href="/editing/quizzes">Quizzes</a></li> <li><a href="/editing/statbox">Statbox</a></li> <li><a href="/editing/symbols">Symbols</a></li> <li><a href="/editing/tables">Tables</a></li> <li><a href="/editing/timelines">Timelines</a></li> <li><a href="/editing/tooltips">Tooltips</a></li> <li><a href="/editing/videos">Videos</a></li> <li><a href="/editing/whitespace">Whitespace</a></li> </ul></details></li> <!-- Contribute/Editing the Wiki --> </ul></details></li> <!-- Contribute --> <li><details><summary><a href="/discuss">Discuss</a></summary><ul> <li><a href="/discuss/bugs">Reporting Issues</a></li> <li><a href="/discuss/mailing-lists">Mailing Lists</a></li> <li><a href="/discuss/chat">Chat</a></li> </ul></details></li> <!-- Discuss --> <li><details><summary>Explore</summary><ul> <li><a href="/news">News</a></li> <li><details><summary><a href="/events">Events</a></summary><ul> <li><a href="/events/presentations">Presentations</a></li> <li><a href="/events/conferences">Conferences</a></li> <li><a href="/events/hackathons">Hackathons</a></li> <li><a href="/events">More...</a></li> </ul></details></li> <!-- Discuss/Events --> <li><details><summary><a href="/libs">Libraries</a></summary><ul> <li><a href="/libs/imagej-ops">ImageJ Ops</a></li> <li><a href="/libs/imagej-common">ImageJ Common</a></li> <li><a href="/libs/imagej-legacy">ImageJ Legacy</a></li> <li><a href="/libs/scijava">SciJava</a></li> <li><a href="/libs/scifio">SCIFIO</a></li> <li><details><summary><a href="/libs/imglib2">ImgLib2</a></summary><ul> <li><a href="/libs/imglib2/getting-started">Getting Started</a></li> <li><a href="/libs/imglib2/accessors">Accessors</a></li> <li><a href="/libs/imglib2/accessibles">Accessibles</a></li> <li><a href="/libs/imglib2/examples">Examples</a></li> <li><a href="/libs/imglib2/workshop-introductory">Introductory Workshop</a></li> <li><a href="/libs/imglib2/workshop-advanced">Advanced Workshop</a></li> <li><a href="/libs/imglib2/matlab">ImgLib2 images in MATLAB</a></li> <li><a href="/libs/imglib2/benchmarks">Benchmarks</a></li> <li><a href="/libs/imglib2/faq">FAQ</a></li> <li><a href="/libs/imglib2/developing">Developing ImgLib2</a></li> <li><a href="/libs/imglib2/discussion">ImgLib2 Discussion</a></li> </ul></details></li> <!-- Explore/Libraries/ImgLib2 --> <li><a href="/libs">More...</a></li> </ul></details></li> <!-- Explore/Libraries --> <li><details><summary><a href="/software">Software</a></summary><ul> <li><a href="/software/nih-image">NIH Image</a></li> <li><a href="/software/imagej">ImageJ</a></li> <li><a href="/software/imagej2">ImageJ2</a></li> <li><a href="/software/fiji">Fiji</a></li> <li><a href="/software">More...</a></li> </ul></details></li> <!-- Explore/Software --> </ul></details></li> <!-- Explore --> </ul> </div> </ul> </div> </nav> <div id="dock-overlay-left" class="dock-overlay" data-dock-target="left-column"></div> <div id="dock-overlay-right" class="dock-overlay" data-dock-target="right-column"></div> <!-- Search results --> <div id="search-results"> <div id="search-hits"></div> <div id="pagination"></div> </div> <!-- Scripts --> <!-- Libraries --> <script src="/assets/js/jquery.min.js"></script> <script src="/assets/js/jquery.scrolly.min.js"></script> <script src="/assets/js/browser.min.js"></script> <script src="/assets/js/breakpoints.min.js"></script> <script src="/assets/js/util.js"></script> <script src="/assets/js/jquery.toc.js"></script> <script src="/assets/js/lightbox.min.js"></script> <!-- Extensions --> <!-- Site code --> <script src="/assets/js/main.js"></script> <script src="/assets/js/dock.js"></script> <script src="/assets/js/code.js"></script> <!-- Anchors --> <script src="https://cdn.jsdelivr.net/npm/anchor-js/anchor.min.js"></script> <script>anchors.add('#page h1, #page h2, #page h3, #page h4, #page h5, #page h6');</script> <!-- Citations --> <script src="https://cdn.jsdelivr.net/npm/citation-js@0.4.0-9"></script> <script src="/assets/js/cite.js"></script> <!-- Search --> <script src="https://cdn.jsdelivr.net/npm/algoliasearch@4.13.0/dist/algoliasearch-lite.umd.js"></script> <script src="https://cdn.jsdelivr.net/npm/instantsearch.js@4.40.3/dist/instantsearch.production.min.js"></script> <script src="/assets/js/search.js"></script> <script src="/assets/js/search-tweaks.js"></script> </body> </html>