]> git.phdru.name Git - git-wiki.git/blobdiff - pep-git.txt
pagure was written by Fedora developers
[git-wiki.git] / pep-git.txt
index c411bd9178348b3332973eb8fea6be013b48fdde..60d08b65cd08da824ce1a8b049740a6fe60bebed 100644 (file)
@@ -14,7 +14,7 @@ Abstract
 
 This Informational PEP collects information about git. There is, of
 course, a lot of documentation for git, so the PEP concentrates on
-more complex issues, scenarios and topics.
+more complex issues, scenarios and examples.
 
 The plan is to extend the PEP in the future collecting information
 about equivalence of Mercurial and git scenarios to help migrating
@@ -30,6 +30,7 @@ Documentation
 Git is accompanied with a lot of documentation, both online and
 offline.
 
+
 Documentation for starters
 --------------------------
 
@@ -45,6 +46,7 @@ Git Tutorial: `part 1
 `Git workflows
 <https://www.kernel.org/pub/software/scm/git/docs/gitworkflows.html>`_.
 
+
 Advanced documentation
 ----------------------
 
@@ -59,6 +61,7 @@ many different languages. Download Russian translation from `GArik
 
 `Git Wiki <https://git.wiki.kernel.org/index.php/Main_Page>`_.
 
+
 Offline documentation
 ---------------------
 
@@ -92,6 +95,7 @@ written in Python and GPL licensed. Linux, Windows, MacOS X.
 `TortoiseGit <https://tortoisegit.org/>`_ is a Windows Shell Interface
 to Git based on TortoiseSVN; open source.
 
+
 Initial configuration
 ---------------------
 
@@ -185,6 +189,7 @@ remote-tracking branches, creates a local branch ``v1``, configure it
 to track upstream remotes/origin/v1 branch and checks out ``v1`` into
 the working directory.
 
+
 Updating local and remote-tracking branches
 -------------------------------------------
 
@@ -355,9 +360,14 @@ tags. To push tags list them explicitly::
     $ git push origin tag 1.4.2
     $ git push origin v1 master tag 2.1.7
 
+Or push all tags at once::
+
+    $ git push --tags origin
+
 Don't move tags with ``git tag -f`` or remove tags with ``git tag -d``
 after they have been published.
 
+
 Private information
 '''''''''''''''''''
 
@@ -419,6 +429,7 @@ Undo
 
 Whatever you do, don't panic. Almost anything in git can be undone.
 
+
 git checkout: restore file's content
 ------------------------------------
 
@@ -434,6 +445,7 @@ i.e. ``git checkout README`` restores README to the latest commit.
 (Do not use ``git checkout`` to view a content of a file in a commit,
 use ``git cat-file -p``; e.g. ``git cat-file -p HEAD~:path/to/README``).
 
+
 git reset: remove (non-pushed) commits
 --------------------------------------
 
@@ -449,6 +461,7 @@ Default is mixed. ProGit `explains
 difference very clearly. Bare repositories don't have indices or
 working trees so in a bare repo only soft reset is possible.
 
+
 Unstaging
 '''''''''
 
@@ -458,6 +471,7 @@ committing. See `The Book
 <https://git-scm.com/book/en/Git-Basics-Undoing-Things>`_ for details
 about unstaging and other undo tricks.
 
+
 git reflog: reference log
 -------------------------
 
@@ -500,6 +514,7 @@ do something like::
     $ git cherry-pick save-master~ save-master
     $ git branch -D save-master # remove temporary branch
 
+
 git revert: revert a commit
 ---------------------------
 
@@ -515,6 +530,7 @@ undo the code created by the merge commit but it cannot undo the fact
 of merge. See the discussion `How to revert a faulty merge
 <https://www.kernel.org/pub/software/scm/git/docs/howto/revert-a-faulty-merge.html>`_.
 
+
 One thing that cannot be undone
 -------------------------------
 
@@ -768,6 +784,7 @@ BTW, there is a difference between running ``git grep -O`` and ``git
 grep -Oless`` - in the latter case ``git grep`` passes ``+/pattern``
 option to less.
 
+
 bash/zsh completion
 -------------------
 
@@ -786,6 +803,7 @@ the latest and greatest download necessary file from `git contrib
 Git-for-windows comes with git-bash for which bash completion is
 installed and enabled.
 
+
 bash/zsh prompt
 ---------------
 
@@ -816,19 +834,26 @@ wrapper `gitolite <http://gitolite.com/gitolite/index.html>`_ that can
 be configured to allow access with great granularity; gitolite has a
 lot of documentation.
 
-TODO: gitweb; cgit; Kallithea; pagure; gogs and gitea; gitlab.
-
-https://git.kernel.org/cgit/git/git.git/tree/gitweb
-
-http://git.zx2c4.com/cgit/
-
-https://kallithea-scm.org/
-
-https://pagure.io/
-
-http://gogs.io/ and http://gitea.io/
-
-https://about.gitlab.com/
+Web interface to browse repositories can be created using `gitweb
+<https://git.kernel.org/cgit/git/git.git/tree/gitweb>`_ and `cgit
+<http://git.zx2c4.com/cgit/about/>`_. Both are CGI scripts (written in
+Perl and C). In addition to web interface both provide read-only dumb
+http access for git (http(s):// URLs).
+
+There are also more advanced web-based development environments that
+include ability to manage users, groups and projects; private, group
+and public repositories; and often include issue trackers, wiki pages,
+pull requests and other tools for development and communication. Among
+these environments are `Kallithea <https://kallithea-scm.org/>`_ and
+`pagure <https://pagure.io/>`_, both are written in Python; pagure was
+written by Fedora developers and is being used to develop some Fedora
+projects. `Gogs <http://gogs.io/>`_ is written in Go; there is a fork
+`Gitea <http://gitea.io/>`_.
+
+And last but not least `Gitlab <https://about.gitlab.com/>`_. It's
+perhaps the most advanced git web-based development environment.
+Written in Ruby, community edition is free and open source (MIT
+license).
 
 
 From Mercurial to git