[MacPorts] WorkingWithGit modified

MacPorts noreply at macports.org
Sat Aug 20 12:59:46 PDT 2016


Page "WorkingWithGit" was changed by cal at macports.org
Diff URL: <https://trac.macports.org/wiki/WorkingWithGit?action=diff&version=4>
Revision 4
Comment: Add work-in-progress answers to Ryan's questions
Changes:
-------8<------8<------8<------8<------8<------8<------8<------8<--------
Index: WorkingWithGit
=========================================================================
--- WorkingWithGit (version: 3)
+++ WorkingWithGit (version: 4)
@@ -1,4 +1,6 @@
 This page should contain information about how to work with [https://git-scm.com git], specifically from the point of view of someone familiar with [https://subversion.apache.org Subversion].
+
+== Common `git` tasks while working with ports ==
 
 To start:
 {{{
@@ -34,3 +36,27 @@
 	modified:   aqua/iTerm2/Portfile
 }}}
 Then run {{{git commit}}} and everything is set. On your machine. To push to github you then have to run {{{git push}}}.
+
+
+== Common `git` tasks while working with MacPorts base ==
+
+=== Checking out a working copy ===
+The source code of MacPorts itself is no longer managed in the same repository as all ports. Contrary to Subversion, checking out a sub-directory of a repository is not possible with Git. In order to avoid that all port maintainers have to clone the complete history of MacPorts base as well, the Subversion repository has been split into multiple separate repositories. MacPorts base is now available using
+{{{
+git clone git at github.com:macports/base.git # or
+git clone https://github.com/macports/base.git # if SSH does not work on your network
+}}}
+
+See the [#reposplit section on repository splitting during the export] to get an overview of where a path in the old Subversion history is now available in Git.
+
+=== Committing changes in your working copy ===
+A fundamental difference between Subversion and Git working copies is that `svn commit` by default commits all changes in your working copy, but `git commit` by default commits none. Git uses a staging area called "index" that allows you to mark changes for inclusion in the next commit. To add changes to the next commit, use `git add <filename>`. `git status` gives you an overview of the current index and your working copy. Additionally, it lists the commands to revert local uncommitted modifications (`git checkout -- <filename>`) and to remove files from the next commit, but preserve the modifications in your working copy (`git reset HEAD <filename>`).
+
+Once you have chosen which files to include in your next commit using `git add`, it is a good practice to review this list using `git status` and show the diff to be committed using `git diff --cached`. When you are satisfied with your changes, run `git commit`, which prompts you for the commit message. See the [#commitmessages section on commit messages in git] for more information on git conventions and expectations in commit messages.
+
+
+== Common `git` tasks & notes about MacPorts' Subversion export ==
+=== Commit messages === #commitmessages
+WIP
+=== Repository split === #reposplit
+WIP
-------8<------8<------8<------8<------8<------8<------8<------8<--------

--
Page URL: <https://trac.macports.org/wiki/WorkingWithGit>
MacPorts <https://www.macports.org/>
Ports system for OS X

This is an automated message. Someone added your email address to be
notified of changes on 'WorkingWithGit' page.
If it was not you, please report to .


More information about the macports-changes mailing list