From 1257cd754009dea270e96c63dbb43ea5c9584327 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Tue, 26 Nov 2024 16:22:30 +0100 Subject: [PATCH] Doc: Try to make the Git information more visible MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Create a new category for Git topics - Split the Git topic into several small topics - Add descriptions of features that users were missing even though they are there Change-Id: Iddae03b0149bef9435c09883fe91207ddfa195f7 Reviewed-by: André Hartmann Reviewed-by: Orgad Shaneh Reviewed-by: Mats Honkamaa --- doc/qtcreator/images/icons/copy.png | Bin 0 -> 241 bytes .../qtcreator-git-clean-repository.webp | Bin 0 -> 4354 bytes .../images/qtcreator-git-commit.webp | Bin 0 -> 10176 bytes .../images/qtcreator-git-diff-repository.webp | Bin 0 -> 11994 bytes .../images/qtcreator-git-instant-blame.webp | Bin 0 -> 16010 bytes doc/qtcreator/images/qtcreator-git-log.webp | Bin 0 -> 9724 bytes doc/qtcreator/images/qtcreator-vcs-commit.png | Bin 16442 -> 0 bytes doc/qtcreator/images/qtcreator-vcs-diff.png | Bin 25343 -> 0 bytes .../external-resources.qdoc | 8 + .../howto/creator-only/creator-how-tos.qdoc | 28 + doc/qtcreator/src/qtcreator-toc.qdoc | 14 + doc/qtcreator/src/qtcreator.qdoc | 1 + .../creator-how-to-use-git-on-windows.qdoc | 30 + .../creator-only/creator-vcs-preferences.qdoc | 5 +- .../creator-only/creator-vcs-subversion.qdoc | 10 +- .../src/vcs/creator-only/creator-vcs.qdoc | 53 +- doc/qtcreator/src/vcs/creator-vcs-git.qdoc | 1233 +++++++++++++---- .../src/qtdesignstudio-toc.qdoc | 2 + 18 files changed, 1099 insertions(+), 285 deletions(-) create mode 100644 doc/qtcreator/images/icons/copy.png create mode 100644 doc/qtcreator/images/qtcreator-git-clean-repository.webp create mode 100644 doc/qtcreator/images/qtcreator-git-commit.webp create mode 100644 doc/qtcreator/images/qtcreator-git-diff-repository.webp create mode 100644 doc/qtcreator/images/qtcreator-git-instant-blame.webp create mode 100644 doc/qtcreator/images/qtcreator-git-log.webp delete mode 100644 doc/qtcreator/images/qtcreator-vcs-commit.png delete mode 100644 doc/qtcreator/images/qtcreator-vcs-diff.png create mode 100644 doc/qtcreator/src/vcs/creator-only/creator-how-to-use-git-on-windows.qdoc diff --git a/doc/qtcreator/images/icons/copy.png b/doc/qtcreator/images/icons/copy.png new file mode 100644 index 0000000000000000000000000000000000000000..7882202139e49f7766812ccb05546595ccc4204f GIT binary patch literal 241 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 RtWxP;b?E;`_PQA#830X0+&KUM literal 0 HcmV?d00001 diff --git a/doc/qtcreator/images/qtcreator-git-diff-repository.webp b/doc/qtcreator/images/qtcreator-git-diff-repository.webp new file mode 100644 index 0000000000000000000000000000000000000000..a83a6f2849fa7c27d6c30016c38df37974539d3c GIT binary patch literal 11994 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 G=l}q$aM_3e literal 0 HcmV?d00001 diff --git a/doc/qtcreator/images/qtcreator-git-instant-blame.webp b/doc/qtcreator/images/qtcreator-git-instant-blame.webp new file mode 100644 index 0000000000000000000000000000000000000000..05dcb286f1296755b326606c570eaa3ca52bc220 GIT binary patch literal 16010 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 literal 0 HcmV?d00001 diff --git a/doc/qtcreator/images/qtcreator-git-log.webp b/doc/qtcreator/images/qtcreator-git-log.webp new file mode 100644 index 0000000000000000000000000000000000000000..9ded1973c129f084e23a8d2b8fb8c9408be38c80 GIT binary patch literal 9724 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 G-I)M4?s2pL literal 0 HcmV?d00001 diff --git a/doc/qtcreator/images/qtcreator-vcs-commit.png b/doc/qtcreator/images/qtcreator-vcs-commit.png deleted file mode 100644 index fbd1ae73a9e49cbbe98b454e06dfc4aa58dc52f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16442 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

4oWa;81*&9t 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 diff --git a/doc/qtcreator/src/external-resources/external-resources.qdoc b/doc/qtcreator/src/external-resources/external-resources.qdoc index 4285df5ae93..af0d7ba78d5 100644 --- a/doc/qtcreator/src/external-resources/external-resources.qdoc +++ b/doc/qtcreator/src/external-resources/external-resources.qdoc @@ -273,3 +273,11 @@ \externalpage https://clang.llvm.org/docs/LibFormat.html \title LibFormat: Documentation */ +/*! + \externalpage https://git-scm.com/downloads + \title Git Downloads +*/ +/*! + \externalpage https://www.gerritcodereview.com/ + \title Gerrit Code Review +*/ diff --git a/doc/qtcreator/src/howto/creator-only/creator-how-tos.qdoc b/doc/qtcreator/src/howto/creator-only/creator-how-tos.qdoc index a3ff886b09a..79e78bba7de 100644 --- a/doc/qtcreator/src/howto/creator-only/creator-how-tos.qdoc +++ b/doc/qtcreator/src/howto/creator-only/creator-how-tos.qdoc @@ -240,6 +240,34 @@ \generatelist creator-how-to-test + \section1 Use Git + + \l{Git} is a fast decentralized version control system + that is available for Windows, Linux, and \macos. You can use the + \l {Gerrit Code Review} tool for projects that use Git. + + \generatelist creator-how-to-git + + \section2 Current file + + \generatelist creator-how-to-git-current-file + + \section2 Current project + + \generatelist creator-how-to-git-current-project + + \section2 Local repositories + + \generatelist creator-how-to-git-local-repository + + \section2 Commits + + \generatelist creator-how-to-git-commits + + \section2 Remote repositories + + \generatelist creator-how-to-git-remote-repository + \section1 Use \QC Use basic \QC features and preinstalled plugins. Install more plugins and diff --git a/doc/qtcreator/src/qtcreator-toc.qdoc b/doc/qtcreator/src/qtcreator-toc.qdoc index be259080797..1704fdd46dc 100644 --- a/doc/qtcreator/src/qtcreator-toc.qdoc +++ b/doc/qtcreator/src/qtcreator-toc.qdoc @@ -93,6 +93,20 @@ \generatelist creator-how-to-get-help \li Test \generatelist creator-how-to-test + \li Use Git + \generatelist creator-how-to-git + \list + \li Current file + \generatelist creator-how-to-git-current-file + \li Current project + \generatelist creator-how-to-git-current-project + \li Local repositories + \generatelist creator-how-to-git-local-repository + \li Commits + \generatelist creator-how-to-git-commits + \li Remote repositories + \generatelist creator-how-to-git-remote-repository + \endlist \li Use \QC \generatelist creator-how-to-use \li Use the UI diff --git a/doc/qtcreator/src/qtcreator.qdoc b/doc/qtcreator/src/qtcreator.qdoc index 47623561e52..92893703032 100644 --- a/doc/qtcreator/src/qtcreator.qdoc +++ b/doc/qtcreator/src/qtcreator.qdoc @@ -86,6 +86,7 @@ \list \li \l{Use \QC} \li \l{Use the UI} + \li \l{Use Git} \li \l{Design UIs} \li \l{Create Models and Diagrams} \li \l{Read Documentation} diff --git a/doc/qtcreator/src/vcs/creator-only/creator-how-to-use-git-on-windows.qdoc b/doc/qtcreator/src/vcs/creator-only/creator-how-to-use-git-on-windows.qdoc new file mode 100644 index 00000000000..8e90bc6f55c --- /dev/null +++ b/doc/qtcreator/src/vcs/creator-only/creator-how-to-use-git-on-windows.qdoc @@ -0,0 +1,30 @@ +// Copyright (C) 2024 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \page creator-how-to-use-git-on-windows.html + \previouspage creator-how-tos.html + + \ingroup creator-how-to-git + + \title Use Git for Windows + + If you configure Git for use with \c {git bash} only, and use SSH + authorization, Git looks for the SSH keys in the directory where the + \c HOME environment points to. The variable is always set by \c {git bash}. + + However, the variable is typically not set in a Windows command prompt. When + you run Git from a Windows command prompt, it looks for the SSH keys in its + installation directory, and therefore, the authorization fails. + + You can set the \c HOME environment variable from \QC. Go to \preferences > + \uicontrol {Version Control} > \uicontrol Git, and then select + \uicontrol {Set "HOME" environment variable}. \c HOME is + set to \c %HOMEDRIVE%%HOMEPATH% when the Git executable is run and + authorization works as it would with \c {git bash}. + + \image qtcreator-preferences-vcs-git.webp {Git preferences} + + \sa {Use Git}{How To: Use Git}, {Compare files}, + {Set up version control systems}, {Version Control Systems} +*/ diff --git a/doc/qtcreator/src/vcs/creator-only/creator-vcs-preferences.qdoc b/doc/qtcreator/src/vcs/creator-only/creator-vcs-preferences.qdoc index 469ad09fb2c..bd9cc39bd1a 100644 --- a/doc/qtcreator/src/vcs/creator-only/creator-vcs-preferences.qdoc +++ b/doc/qtcreator/src/vcs/creator-only/creator-vcs-preferences.qdoc @@ -6,6 +6,7 @@ \previouspage creator-how-tos.html \ingroup creator-how-to-use + \ingroup creator-how-to-git \title Set up version control systems @@ -23,7 +24,7 @@ arise, you should be ready to use the system also from \QC. For more information on using Git for Windows, see - \l {Using Git for Windows}. + \l {Use Git for Windows}. \section1 General VCS preferences @@ -82,5 +83,5 @@ To show file status, go to \preferences > \uicontrol {Version Control} > \uicontrol General, and then select \uicontrol {Show VCS file status}. - \sa {Version Control Systems} + \sa {Use Git}{How To: Use Git}, {Version Control Systems} */ diff --git a/doc/qtcreator/src/vcs/creator-only/creator-vcs-subversion.qdoc b/doc/qtcreator/src/vcs/creator-only/creator-vcs-subversion.qdoc index b4bbe897aaf..d9a5a44e821 100644 --- a/doc/qtcreator/src/vcs/creator-only/creator-vcs-subversion.qdoc +++ b/doc/qtcreator/src/vcs/creator-only/creator-vcs-subversion.qdoc @@ -20,16 +20,16 @@ Subversion is an open source version control system. In addition to the standard version control system functions described in - \l {Use common VCS Functions}, you can select \uicontrol Tools > - \uicontrol Subversion > \uicontrol Describe to display commit log messages - for a revision. + \l {Use common VCS Functions}, you can go to \uicontrol Tools > + \uicontrol Subversion and select \uicontrol Describe to display commit log + messages for a revision. You can use Git as a client for a Subversion server. For more information, - see \l{Using Git with Subversion}. + see \l{Use Git with Subversion}. \section1 Subversion Preferences - To set Subversion preferences, select \preferences > + To set Subversion preferences, go to \preferences > \uicontrol {Version Control} > \uicontrol Subversion: \image qtcreator-preferences-vcs-subversion.webp {Subversion preferences} diff --git a/doc/qtcreator/src/vcs/creator-only/creator-vcs.qdoc b/doc/qtcreator/src/vcs/creator-only/creator-vcs.qdoc index 810b8f79b0f..de459d6ec88 100644 --- a/doc/qtcreator/src/vcs/creator-only/creator-vcs.qdoc +++ b/doc/qtcreator/src/vcs/creator-only/creator-vcs.qdoc @@ -46,7 +46,7 @@ \li Enable the plugin to use it. \row \li \l{Git} - \li \l{http://git-scm.com/} + \li \l{https://git-scm.com/} \li Git version 1.9.0, or later Gerrit version 2.6, or later @@ -71,7 +71,8 @@ \endtable \sa {Create VCS repositories for new projects}, {Enable and disable plugins}, - {Set up version control systems}, {Use common VCS functions} + {Use Git}{How To: Use Git}, {Set up version control systems}, + {Use common VCS functions} */ /*! @@ -80,23 +81,30 @@ \ingroup creator-how-to-projects-create \ingroup creator-how-to-projects-configure + \ingroup creator-how-to-git \title Create VCS repositories for new projects - \QC allows you to create repositories for version control systems that - support local repository creation, such as Git, Mercurial, or Bazaar. - When creating a new project by selecting \uicontrol File > \uicontrol{New File or - Project}, you can choose a version control system on the final wizard page. + You can create repositories for version control systems that + support local repository creation, such as Git, Mercurial, or Bazaar in + the following ways: - You can also select \uicontrol Tools and then select \uicontrol {Create Repository} - in the submenu for the version control system. + \list + \li To create a new project, go to \uicontrol File > + \uicontrol {New Project}, and select a version + control system on the last wizard page. + \li To place a project directory under version control, go to + \uicontrol Tools, and then select \uicontrol {Create Repository} in + the submenu for a version control system. + \li To import a project that is already under version control, go to + \uicontrol File > \uicontrol {New Project} > + \uicontrol {Project from Version Control} and select the version + control system that you use. Follow the instructions of the wizard + to import the project. + \endlist - To import a project that is under version control, choose \uicontrol File > - \uicontrol {New Project} > \uicontrol {Project from Version Control} - and select the version control system that you use. Follow the instructions - of the wizard to import the project. - - \sa {Creating Projects}, {Use project wizards}, {Version Control Systems} + \sa {Use Git}{How To: Use Git}, {Use project wizards}, {Creating Projects}, + {Git}, {Version Control Systems} */ /*! @@ -104,6 +112,7 @@ \previouspage creator-how-tos.html \ingroup creator-how-to-use + \ingroup creator-how-to-git \title Use common VCS functions @@ -136,15 +145,18 @@ All version control systems have menu options to \e{diff} the current file or project: to compare it with the latest version stored in the repository and to display the differences. In \QC, a diff is displayed in a - read-only editor. If the file is accessible, you can double-click on a + read-only editor. + + \image qtcreator-git-diff-repository.webp {Git Diff Repository view} + \caption Git Diff Repository view + + If the file is accessible, you can double-click on a selected diff chunk and \QC opens an editor displaying the file, scrolled to the line in question. - \image qtcreator-vcs-diff.png - With Git, Mercurial, and Subversion, the diff is displayed side-by-side in a \l{Compare files}{diff editor} by default. To use the inline diff view - instead, select the \uicontrol {Switch to Text Diff Editor} (1) option from + instead, select the \uicontrol {Unified Diff Editor} option from the toolbar. In the inline diff view, you can use context menu commands to apply, revert, stage, and unstage chunks or selected lines, as well as send chunks to a code pasting @@ -160,7 +172,7 @@ To open annotation views, select \uicontrol {Annotate} or \uicontrol {Blame}. They show the lines of the file and the identifier of the change the lines - originate from. Click the change identifier to see a detailed description of + originate from. Select the change identifier to see a detailed description of the change. To show the annotation of a previous version, right-click on the @@ -204,5 +216,6 @@ You can select \uicontrol Delete to delete obsolete files from the repository. - \sa {Set up version control systems}, {Version Control Systems} + \sa {Use Git}{How To: Use Git}, {Set up version control systems}, + {Version Control Systems} */ diff --git a/doc/qtcreator/src/vcs/creator-vcs-git.qdoc b/doc/qtcreator/src/vcs/creator-vcs-git.qdoc index 31e13c8185e..28885788296 100644 --- a/doc/qtcreator/src/vcs/creator-vcs-git.qdoc +++ b/doc/qtcreator/src/vcs/creator-vcs-git.qdoc @@ -1,4 +1,4 @@ -// Copyright (C) 2023 The Qt Company Ltd. +// Copyright (C) 2024 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only // ********************************************************************** @@ -24,248 +24,712 @@ \brief Additional Git functions. \endif - \l{http://git-scm.com/}{Git} is a fast decentralized version control system. + \l{Git Downloads}{Git} is a fast decentralized version control system. Git is available for Windows, Linux, and \macos. - You can use the \l{http://code.google.com/p/gerrit/}{Gerrit} code review - tool for projects that use Git. + You can use the \l{Gerrit Code Review} tool for projects that use Git. - \if defined(qtcreator) - \section1 Using Git for Windows + \section1 Getting started with Git - If you configure Git for use with \c {git bash}, only, and use SSH - authorization, Git looks for the SSH keys in the directory where the - \c HOME environment points to. The variable is always set by \c {git bash}. - - However, the variable is typically not set in a Windows command prompt. When - you run Git from a Windows command prompt, it looks for the SSH keys in its - installation directory, and therefore, the authorization fails. - - You can set the \c HOME environment variable from \QC. Select \preferences > - \uicontrol {Version Control} > \uicontrol Git, and then select the - \uicontrol {Set "HOME" environment variable} check box. \c HOME is - set to \c %HOMEDRIVE%%HOMEPATH% when the Git executable is run and - authorization works as it would with \c {git bash}. - - \image qtcreator-preferences-vcs-git.webp {Git preferences} + \if defined(qtdesignstudio) + \generatelist studio-how-to-git-gs + \else + \generatelist creator-how-to-git \endif - \section1 Initializing Git Repositories + \section1 Working with the current file + + To work with the current file, go to \uicontrol Tools > + \uicontrol Git > \uicontrol {Current File}. + + \generatelist creator-how-to-git-current-file + + \section1 Working with the current project + + To work with the current project, go to \uicontrol Tools > + \uicontrol Git > \uicontrol {Current Project Directory}. + + \generatelist creator-how-to-git-current-project + + \section1 Working with local repositories + + To work with the local repository, go to \uicontrol Tools > + \uicontrol Git > \uicontrol {Local Repository}. + + \generatelist creator-how-to-git-local-repository + + \section1 Working with remote repositories + + To work with remote repositories, go to \uicontrol Tools > + \uicontrol Git > \uicontrol {Remote Repository}. + + \generatelist creator-how-to-git-remote-repository + + \section2 Managing remote repositories + + To manage remote repositories available in Git, go to \uicontrol Tools > + \uicontrol Git > \uicontrol {Remote Repository} > + \uicontrol {Manage Remotes}. Double-click the names and URLs of the remote + repositories to edit them. + + The following operations are supported: + + \table + \header + \li Menu Item + \li Description + \row + \li \uicontrol{Refresh} + \li Refresh the list of remote repositories. + \row + \li \uicontrol{Add} + \li Add a new remote repository. + \row + \li \uicontrol{Fetch} + \li Fetch all the branches and change information from a remote + repository. + \row + \li \uicontrol Push + \li Push committed changes to the remote repository. + \row + \li \uicontrol{Remove} + \li Remove a remote repository. + \endtable + + \if defined(qtcreator) + \sa {Use Git}{How To: Use Git}, {Compare files}, + {Set up version control systems}, {Version Control Systems} + \endif +*/ + +/*! + \page creator-how-to-git-first-commit.html + \if defined(qtdesignstudio) + \previouspage Using Git + \else + \previouspage creator-how-tos.html + \endif + + \ingroup creator-how-to-git + + \ingroup studio-how-to-git-gs + + \title Commit your first change + + When working with Git, you typically check and stage you local changes, + commit them to the local repository, and then push them to a remote + repository (\e origin). + + Before you start, set up Git in \preferences > \uicontrol {Version Control} + > \uicontrol {General}. + + \section1 Commit to a new repository + + To commit and push your first change to a new repository: + + \list 1 + \li To start tracking changes, go to \uicontrol Tools > \uicontrol Git, + and then select \uicontrol {Create Repository}. + \li To view local changes, go to \uicontrol Tools > \uicontrol Git > + \uicontrol {Local Repository} and select \uicontrol {Diff}. + \image qtcreator-git-diff-repository.webp {Git Diff Repository view} + \caption Git Diff Repository view + \li Right-click a changed line and select \uicontrol {Stage Chunk} to add + the \e {chunk} to the staging area or \uicontrol {Stage Selection} + to add the selected lines there. + \li To commit the staged changes to the local repository, go to + \uicontrol Tools > \uicontrol Git > \uicontrol {Local Repository} + and select \uicontrol Commit. + \image qtcreator-git-commit.webp {Git Commit view} + \caption Git Commit view + \li Select the files to commit, and then select + \uicontrol {Commit File(s)} to commit the changes to the local + repository. + \li To push the committed changes to a remote repository, go to + \uicontrol Tools > \uicontrol Git > \uicontrol {Remote Repository} + and select \uicontrol Push. + + If the local branch does not have an upstream branch in the remote + repository, \QC prompts you to create it and set it as \e origin. + \endlist + + \section1 Commit to an existing repository + + To commit and push your first change to an existing repository: + + \list 1 + \li To pull changes from a remote repository, go to \uicontrol Tools > + \uicontrol Git > \uicontrol {Remote Repository} and select + \uicontrol Pull. + \li Select \uicontrol {Stash & Pop} to stash all local changes before + pulling and to apply your stash on top of the pulled working tree + state. + \li To commit the changes to the local repository, go to \uicontrol Tools + > \uicontrol Git > \uicontrol {Local Repository} and select + \uicontrol Commit. + \li To push the committed changes to a remote repository, go to + \uicontrol Tools > \uicontrol Git > \uicontrol {Remote Repository} + and select \uicontrol Push. + \endlist + + \if defined(qtcreator) + \sa {Use Git}{How To: Use Git}, {Git} + \endif +*/ + +/*! + \page creator-how-to-initialize-git-repo.html + \if defined(qtdesignstudio) + \previouspage Using Git + \else + \previouspage creator-how-tos.html + \endif + + \ingroup creator-how-to-git + + \ingroup studio-how-to-git-gs + + \title Initialize Git repositories To start controlling a project directory that is currently not under - version control, select \uicontrol Tools > \uicontrol Git > - \uicontrol {Create Repository}. \QC creates a new subdirectory named .git - that has all the necessary repository files. However, Git does not track - anything in the project yet, so you will need to create an initial commit to - start tracking the project files. + version control, go to \uicontrol Tools > \uicontrol Git, and then select + \uicontrol {Create Repository}. - \section1 Working with the Current File + \QC creates a new subdirectory named \e {.git} that has all the necessary + repository files. - To work with the current file, select the commands in \uicontrol Tools > - \uicontrol Git > \uicontrol {Current File}. Some of the commands are also - available for the project or local repository that has the file. + However, Git does not track anything in the project yet, so you need to + create an initial commit to start tracking the project files. - \section2 Viewing Git Diff + \if defined(qtcreator) + \sa {Use Git}{How To: Use Git}, {Git} + \endif +*/ - You can \e{diff} the current file or project to compare it with the latest - version stored in the repository and to display the differences. To display - the diff in a read-only editor, select \uicontrol {Diff of}. If the file is - accessible, you can double-click on a selected diff chunk and \QC opens an - editor displaying the file, scrolled to the line in question. +/*! + \page creator-how-to-git-diff.html + \if defined(qtdesignstudio) + \previouspage Using Git + \else + \previouspage creator-how-tos.html + \endif - \image qtcreator-vcs-diff.png + \ingroup creator-how-to-git-current-file + \ingroup creator-how-to-git-current-project + \ingroup creator-how-to-git-local-repository - The diff editor displays the diff side-by-side. To use + \ingroup studio-how-to-git + + \title git diff + + You can \e {diff} the current file or project to compare it with the latest + version stored in the repository and to display the differences. + + \list + \li To view changes in the current file, go to \uicontrol Tools > + \uicontrol Git > \uicontrol {Current File} and select + \uicontrol {Diff of }. + \li To view changes in the current project directory, go to + \uicontrol Tools > \uicontrol Git > + \uicontrol {Current Project Directory} and select + \uicontrol {Diff Directory of }. + \li To view changes in the local repository, go to \uicontrol Tools > + \uicontrol Git > \uicontrol {Local Repository} and select + \uicontrol {Diff}. + \endlist + + The \uicontrol {Git Diff} view shows the diff in a read-only editor. If \QC + can access the file, you can double-click a diff chunk to open an editor + that displays the file and line. + + \image qtcreator-git-diff-repository.webp {Git Diff Repository view} + \caption Git Diff Repository view + + \section1 Toggle unified and side-by-side views + + The \uicontrol {Git Diff} view displays the diff side-by-side. To use the unified diff view instead, select the \uicontrol {Switch to Unified Diff Editor} (1) option from the toolbar. - In both views, you can use context menu commands to apply, revert, stage, - and unstage chunks or selected lines, as well as send chunks to a code - pasting service. - \section2 Viewing Git Log + \section1 Show Git status in the Projects view - To display the versioning history of a file, select \uicontrol{Log of}. - The log output has the date, the commit message, and a commit - identifier. + To show changed files in the \l {Projects} view in a different color, go to + \preferences > \uicontrol {Version Control} > \uicontrol {General} and select + \uicontrol {Show VCS file status}. - You can set the maximum number of log entries to show in \preferences > + \section1 Stage and unstage changes + + Stage your changes to commit them, so that you can push them to the remote + repository or send them to Gerrit for review. To stage changes for a commit + chunk-by-chunk or line-by-line, right-click a chunk or line in the + \uicontrol {Git Diff} view and select context menu commands to stage or + unstage it. + + \table + \header + \li Context Menu Item + \li Description + \row + \li \uicontrol {Revert Chunk} + \li Resets the changes in the chunk. + \row + \li \uicontrol {Stage Chunk} + \li Adds the chunk to the staging area. + \row + \li \uicontrol {Stage Selection} + \li Adds the selected lines to the staging area. + \row + \li \uicontrol {Unstage Chunk} + \li Removes the chunk from the staging area. + \row + \li \uicontrol {Unstage Selection} + \li Removes the selected lines from the staging area. + \endtable + + \if defined(qtcreator) + \sa {Use Git}{How To: Use Git}, {Git} + \endif +*/ + +/*! + \page creator-how-to-git-log.html + \if defined(qtdesignstudio) + \previouspage Using Git + \else + \previouspage creator-how-tos.html + \endif + + \ingroup creator-how-to-git-current-file + \ingroup creator-how-to-git-current-project + \ingroup creator-how-to-git-local-repository + + \ingroup studio-how-to-git + + \title git log + + You can view the versioning history of the current file or project directory + or local repository. + + \list + \li To view the versioning history of the current file, go to + \uicontrol Tools > \uicontrol Git > \uicontrol {Current File} and + select \uicontrol {Log of }. + \li To view the versioning history of a selection of the current file, go + to \uicontrol Tools > \uicontrol Git > \uicontrol {Current File} and + select \uicontrol {Log of Selection}. + \li To view the versioning history of the current project directory, go + to \uicontrol Tools > \uicontrol Git > + \uicontrol {Current Project Directory} and select + \uicontrol {Log of }. + \li To view the versioning history of the local repository, go to + \uicontrol Tools > \uicontrol Git > \uicontrol {Local Repository} and + select \uicontrol {Log}. + \li To view the log of a directory and its subdirectories, right-click it + in \l Projects. + \endlist + + The \uicontrol {Git Log} view shows the commit identifier, author, date, and + commit message. + + \image qtcreator-git-log.webp {Commit details in Git log} + + To set the maximum number of log entries to show, go to \preferences > \uicontrol {Version Control} > \uicontrol Git > \uicontrol {Log count}. - Click on the commit identifier to view commit details. + Select \inlineimage icons/reload_gray.png + (\uicontrol Reload) to rescan the files. - \image qtcreator-git-log.png {Commit details in Git log} + \section1 View log entry details - Right-clicking on a commit identifier brings up a context menu that lets - you apply actions on the commit, such as view annotations or cherry-pick - or revert a commit. For more information, see \l{Working with Branches}. + In the \uicontrol {Git Log} view, select a commit identifier to view commit + details. + + Right-click a commit identifier to \l{Apply actions to commits} + {apply actions to the commit}, such as cherry-pick, checkout, + or revert it. + + \section1 Toggle the diff view + + To toggle the diff view, select \uicontrol Diff. + + \section1 Use the patience diff algorithm + + To use the patience diff algorithm for calculating the differences, select + \uicontrol Patience. + + \section1 Ignore whitespace changes - To toggle the diff view, select \uicontrol Diff. To use the patience - algorithm for calculating the differences, select \uicontrol Patience. To only show text changes, select \uicontrol {Ignore Whitespace}. + \section1 Filter log entries + To filter log entries by the text in the commit message, by strings that - were added or removed, or by author, select \uicontrol Filter. Enter a - search sting in the \uicontrol {Filter by message}, - \uicontrol {Filter by content}, or \uicontrol {Filter by author} field. - Select \uicontrol {Case Sensitive} to make filtering consider case. + were added or removed, or by author: + + \list 1 + \li In the \uicontrol {Git Log} view, select \uicontrol Filter. + \li Enter a search string in \uicontrol {Filter by message}, + \uicontrol {Filter by content}, or \uicontrol {Filter by author}. + \li Select \uicontrol {Case Sensitive} to make filtering consider case. + \endlist + + \section1 Show log for all local branches + + To show the log for all local branches (for example, to see all commits + that touch a file), select \uicontrol All. + + \section1 Follow only the first parent To follow only the first parent on merge commits, select \uicontrol {First Parent}. + \section1 Toggle text and graph + To toggle between textual and visual representation of the log, select \uicontrol Graph. + \section1 Toggle colors + To toggle color coding of different parts of the log entries, select \uicontrol Color. + \section1 Show log for previous names of the file + To show log also for previous names of the file, select \uicontrol Follow. - Select \inlineimage icons/reload_gray.png - (\uicontrol Reload) to rescan the files. + \section1 Show details To display a description of the change including the diff in the \uicontrol {Git Show} view, select \uicontrol {Describe Change} in the context menu. - \image qtcreator-vcs-show.png {Commit description in Git show} + \image qtcreator-vcs-show.png {Commit description in Git Show} - \section2 Viewing Annotations + \if defined(qtcreator) + \sa {Use Git}{How To: Use Git}, {Git} + \endif +*/ - To view annotations, select \uicontrol {Blame}. The \uicontrol {Git Blame} - view displays the lines of the file prepended by the commit identifier they - originate from. +/*! + \page creator-how-to-git-blame.html + \if defined(qtdesignstudio) + \previouspage Using Git + \else + \previouspage creator-how-tos.html + \endif + + \ingroup creator-how-to-git-current-file + \ingroup studio-how-to-git + + \title git blame + + By default, each line is annotated in the editor when you move the cursor + through a file. Hover over the annotation to view commit details. + + \image qtcreator-git-instant-blame.webp {Instant blame in the code editor} + \caption Instant blame in the code editor + + When instant blame is off, you can go to \uicontrol Tools > \uicontrol Git > + \uicontrol {Current File} > \uicontrol {Instant Blame} to view blame for the + current line. + + \section1 Hide blame in the editor + + To hide blame in the editor, go to \preferences > + \uicontrol {Version Control} > \uicontrol Git and + clear \uicontrol {Instant Blame}. + + \image qtcreator-preferences-vcs-git.webp {Git Preferences} + + \section1 View blame for the whole file + + To view blame for all lines in the file in the \uicontrol {Git Blame} view, + go to \uicontrol Tools > \uicontrol Git > \uicontrol {Current File} and + select \uicontrol {Blame for }. Before each line, you can see + the identifier of the commit it originates from. \image qtcreator-git-blame.webp {Git Blame view} - By default, each line is annotated in the editor when you scroll through - the file. To disable this feature, select \preferences > - \uicontrol {Version Control} > \uicontrol Git, and - deselect \uicontrol {Instant Blame}. To find the commit that introduced - the last real code change, select \uicontrol {Ignore whitespace changes}. - To find the commit that introduced a line before it was moved, select - \uicontrol {Ignore line moves}. - - To view annotations for the current line, select \uicontrol Tools > - \uicontrol Git > \uicontrol {Current File} > \uicontrol {Instant Blame}. - - Click the commit identifier to show a detailed description of the change. - - To show the annotation of a previous version, right-click on the commit - identifier and select \uicontrol {Blame Parent Revision}. This allows you - to navigate through the history of the file and obtain previous versions - of it. - - To view moved or copied lines within a file or between files, select - \uicontrol {Detect Moves Within File}, \uicontrol {Detect Moves Between Files}, - or \uicontrol {Detect Moves and Copies Between Files}. - To hide the date and time information in the view, select \uicontrol {Omit Date}. - The other actions in the context-menu enable you to apply actions to the - commit, such as cherry-pick, checkout, or revert it. + To find the commit that introduced the last real code change, select + \uicontrol {Ignore Whitespace}. + + To find the commit that introduced a line before it was moved, select + \uicontrol {No Move Detection}. To view moved or copied lines within a file + or between files, select \uicontrol {Detect Moves Within File}, + \uicontrol {Detect Moves Between Files}, + or \uicontrol {Detect Moves and Copies Between Files}. To rescan the files, select \inlineimage icons/reload_gray.png (\uicontrol Reload). - \section2 Staging Changes + Select the commit identifier to show a detailed description of the change + in the \uicontrol {Git Show} view. - To mark a new or modified file for committing it to the repository, - select \uicontrol {Stage File for Commit}. To undo this function, - select \uicontrol {Unstage File from Commit}. + Right-click the commit identifier to \l{Apply actions to commits} + {apply other actions to the commit}, such as cherry-pick, checkout, + or revert it. - \section2 Resetting Changes + \section1 View blame in previous versions + + To show the annotation of a previous version, right-click the commit + identifier and select \uicontrol {Blame Parent Revision}. This allows you + to navigate through the history of the file and obtain previous versions + of it. + + \if defined(qtcreator) + \sa {Use Git}{How To: Use Git}, {Git} + \endif +*/ + +/*! + \page creator-how-to-git-stage-changes.html + \if defined(qtdesignstudio) + \previouspage Using Git + \else + \previouspage creator-how-tos.html + \endif + + \ingroup creator-how-to-git-current-file + \ingroup creator-how-to-git-current-project + + \ingroup studio-how-to-git + + \title Stage changes + + Stage your changes to commit them, so that you can push them to the remote + repository or send them to Gerrit for review. + + \section1 Stage the current file + + To mark a new or modified file for committing it to the repository, go to + \uicontrol Tools > \uicontrol Git > \uicontrol {Current File} and select + \uicontrol {Stage for Commit}. + + To undo this action, select \uicontrol {Unstage from Commit}. + + \section1 Stage chunks or lines + + You can stage changes for a commit chunk-by-chunk or line-by-line in the + \l{git diff}{Git Diff} view. + + \if defined(qtcreator) + \sa {Use Git}{How To: Use Git}, {Git} + \endif +*/ + +/*! + \page creator-how-to-git-reset.html + \if defined(qtdesignstudio) + \previouspage Using Git + \else + \previouspage creator-how-tos.html + \endif + + \ingroup creator-how-to-git-current-file + \ingroup creator-how-to-git-local-repository + + \ingroup studio-how-to-git + + \title git reset Git uses an index to stage changes. The index is committed on the next commit. Git allows you to revert back to the state of the last commit as well as to the state staged in the index. + \section1 Revert changes in the current file + To revert all changes and reset the current file to the state of the index, - select \uicontrol{Undo Unstaged Changes}. + go to \uicontrol Tools > \uicontrol Git > \uicontrol {Current File} and + select \uicontrol {Undo Unstaged Changes for }. To return the current file to the state it was in right after the last - commit, select \uicontrol {Undo Uncommitted Changes}. This reverts all - changes, discarding the index. + commit, select \uicontrol {Undo Uncommitted Changes for }. This reverts + all changes, discarding the index. - \section1 Working with the Current Project + \section1 Reset changes in the local repository - To work with the current project, select the commands in \uicontrol Tools > - \uicontrol Git > \uicontrol {Current Project}. The \uicontrol {Diff Project} - and \uicontrol {Log Project} commands, which are also available for the - current file, are described above. + To reset changes in the local repository, go to \uicontrol Tools > + \uicontrol Git > \uicontrol {Local Repository} and select \uicontrol Reset. - \section2 Cleaning Projects + Select the commit to reset the working directory to. This is useful + after applying patches for review, for example. - To clean the working directory, select \uicontrol {Clean Project}. - All files that are not under version control are displayed in - the \uicontrol {Clean Repository} dialog. Ignored files are deselected by - default. Select the files to delete, and then select \uicontrol Delete. + Select the reset type: - \section1 Working with Local Repositories + \list + \li \uicontrol Hard reset discards all changes to tracked + files in the working tree. - To work with the local repository, select the commands in \uicontrol Tools > - \uicontrol Git > \uicontrol {Local Repository}. The commands that are also - available for the current file or project are described above. + For more information about how to recover accidently removed commits, + see \l{git reflog}. + \li \uicontrol Mixed reset undoes the selected commits and unstages all + changes, but keeps the working tree unchanged. + \li \uicontrol Soft reset undoes the selected commits but keeps all + staged changes and the working tree unchanged. + \endlist - \section2 Viewing Reference Log + To recover removed files, select \uicontrol {Recover Deleted Files}. - Reference logs record when the tips of branches and other references were - updated in the local repository. To view the reference log, select + \if defined(qtcreator) + \sa {Use Git}{How To: Use Git}, {Git} + \endif +*/ + +/*! + \page creator-how-to-git-clean.html + \if defined(qtdesignstudio) + \previouspage Using Git + \else + \previouspage creator-how-tos.html + \endif + + \ingroup creator-how-to-git-current-project + \ingroup creator-how-to-git-local-repository + + \ingroup studio-how-to-git + + \title git clean + + You can remove files that are not under version control from the project + or local repository. + + \list + \li To clean the current project directory, go to \uicontrol Tools > + \uicontrol Git > \uicontrol {Clean Directory of Project } + and select \uicontrol {Current Project Directory}. + \li To clean the local repository, go to \uicontrol Tools > + \uicontrol Git > \uicontrol {Local Repository} and select + \uicontrol Clean. + \endlist + + To clean the directory or repository: + + \list 1 + \li In the \uicontrol {Clean Repository} dialog, select the files to + delete. + \image qtcreator-git-clean-repository.webp {Clean Repository dialog} + By default, ignored files are not selected. + \li Select \uicontrol Delete to remove the selected files. + \endlist + + \if defined(qtcreator) + \sa {Use Git}{How To: Use Git}, {Git} + \endif +*/ + +/*! + \page creator-how-to-git-reflog.html + \if defined(qtdesignstudio) + \previouspage Using Git + \else + \previouspage creator-how-tos.html + \endif + + \ingroup creator-how-to-git-local-repository + + \ingroup studio-how-to-git + + \title git reflog + + Reference logs record the time when the tips of branches and other references + were updated in the local repository. To view the reference log, go to + \uicontrol Tools > \uicontrol Git > \uicontrol {Local Repository} and select \uicontrol Reflog. - \section2 Viewing Git Status + \if defined(qtcreator) + \sa {Use Git}{How To: Use Git}, {Git} + \endif +*/ - To view the status of the repository in \uicontrol {Version Control}, - select \uicontrol Status. The context menu has additional - actions, such as selecting and clearing all entries, copying - text, and opening files. +/*! + \page creator-how-to-git-status.html + \if defined(qtdesignstudio) + \previouspage Using Git + \else + \previouspage creator-how-tos.html + \endif - \section2 Committing Changes to Git + \ingroup creator-how-to-git-local-repository - To submit your changes to Git, select \uicontrol Commit. \QC displays a - commit page containing a text editor where you can enter your commit - message and a checkable list of modified files to include. + \ingroup studio-how-to-git - \image qtcreator-vcs-commit.png {Committing changes with Git} + \title git status - \uicontrol {General Information} displays the names of the - repository and branch for the commit. + To view the status of the repository in \uicontrol {Version Control}, go to + \uicontrol Tools > \uicontrol Git > \uicontrol {Local Repository} and select + \uicontrol Status. - In \uicontrol {Commit Information}, you can edit information about the - author of the commit. To bypass re-commit and commit message hooks, - select \uicontrol {Bypass hooks}. If your project uses signoffs, - select \uicontrol {Sign off} to add a \e signed-off-by trailer by the - author at the end of the commit log message. + \if defined(qtcreator) + \sa {Use Git}{How To: Use Git}, {Git} + \endif +*/ - In \uicontrol Description, edit the commit message. +/*! + \page creator-how-to-git-commit.html + \if defined(qtdesignstudio) + \previouspage Using Git + \else + \previouspage creator-how-tos.html + \endif - In \uicontrol Files, select the files to include in the commit. + \ingroup creator-how-to-git-local-repository - When you have finished filling out the commit page information, select - \uicontrol Commit to start committing. + \ingroup studio-how-to-git - The \uicontrol {Diff Selected Files} button opens a \l{Viewing Git Diff} - {diff view} of the files selected in the file list. Select - \uicontrol {Stage Chunk} in the context menu to stage a chunk or - \uicontrol {Stage Selection} to stage the selected lines. + \title git commit - To unstage chunks or selected lines, select \uicontrol {Unstage Chunk} or - \uicontrol {Unstage Selection} in the context menu. To revert the changes - in a chunk, select \uicontrol {Revert Chunk}. + To submit your changes to Git: - The commit page is just another editor, and therefore you return to it when - you close the diff view. You can also switch to an open diff view by - selecting it in the \uicontrol {Open Documents} view in the sidebar. + \list 1 + \li Go to \uicontrol Tools > \uicontrol Git > + \uicontrol {Local Repository} and select \uicontrol Commit. + \image qtcreator-git-commit.webp {Git Commit view} + \uicontrol {General Information} shows the names of the + repository and branch for the commit. + \li In \uicontrol {Commit Information}, check and edit information about + the author of the changes. + \li To bypass pre-commit and commit message hooks, select + \uicontrol {Bypass hooks}. + \li If your project uses signoffs, select \uicontrol {Sign off} to add a + \e signed-off-by trailer by the author at the end of the commit log + message. + \li In \uicontrol Description, enter a commit message. + \li In \uicontrol Files, select the files to include in the commit. + \li Select \uicontrol {Diff Selected Files} to open the \l{git diff} + {Git Diff Files} view, where you can view the changes and stage them + chunk-by-chunk or line-by-line. + \li Select \uicontrol Commit to start committing. + \endlist - \section2 Amending Commits + \if defined(qtcreator) + \sa {Use Git}{How To: Use Git}, {Git} + \endif +*/ - To apply latest changes to the last commit, select \uicontrol Tools > +/*! + \page creator-how-to-git-am.html + \if defined(qtdesignstudio) + \previouspage Using Git + \else + \previouspage creator-how-tos.html + \endif + + \ingroup creator-how-to-git-local-repository + + \ingroup studio-how-to-git + + \title git am + + To apply latest changes to the last commit, go to \uicontrol Tools > \uicontrol Git > \uicontrol {Local Repository} > \uicontrol {Amend Last Commit}. \image qtcreator-git-amend.png {Amending a Git commit} - To view the commit in its current form, before amending, select + To view the commit in its current form before amending, select \uicontrol {Show HEAD}. To view a diff of the changes in the selected files, select @@ -273,44 +737,77 @@ Select \uicontrol Commit to amend the commit. + \section1 Amend related commits + To amend an earlier comment in a series of related commits, select \uicontrol Tools > \uicontrol Git > \uicontrol {Local Repository} > \uicontrol {Fixup Previous Commit}. This operation uses interactive rebase. In case of conflicts, a merge tool is suggested. - \section2 Resetting Local Repository + \if defined(qtcreator) + \sa {Use Git}{How To: Use Git}, {Git} + \endif +*/ - To reset changes, select \uicontrol Reset. This opens a dialog where you - can select the commit to reset the working directory to. This is useful - after applying patches for review, for example. You can choose between a - \uicontrol Soft reset that does not touch the index file nor the working - tree at all, a \uicontrol Hard reset that discards all changes to tracked - files in the working tree, and a \uicontrol Mixed reset that resets HEAD - and the index (nothing remains staged) without touching the working - directory. +/*! + \page creator-how-to-git-interactive-rebase.html + \if defined(qtdesignstudio) + \previouspage Using Git + \else + \previouspage creator-how-tos.html + \endif - To recover removed files, select \uicontrol {Recover Deleted Files}. + \ingroup creator-how-to-git-local-repository - To change a series of commits in the local repository, select + \ingroup studio-how-to-git + + \title Interactive rebase + + To change a series of commits in the local repository, go to \uicontrol Tools + > \uicontrol Git > \uicontrol {Local Repository} and select \uicontrol {Interactive Rebase}. You can reorder or discard commits, squash them into a single commit, or edit the commit messages. - If you already pushed the local changes to a remote, \QC refuses - the interactive rebase because the local commits are missing. To - start the interactive rebase from the change log, select - \uicontrol Branches > \uicontrol Log. Select the change, and then - select > \uicontrol {Interactive Rebase from Change} in the context + \section1 Rebase from the change log + + If you already pushed the local changes to a remote repository, \QC refuses + the interactive rebase because the local commits are missing. + + To start the interactive rebase from the change log, go to \uicontrol Tools + > \uicontrol Git > \uicontrol Branches > \uicontrol Log. Select the change, + and then select \uicontrol {Interactive Rebase from Change} in the context menu. - \section2 Working with Branches + \if defined(qtcreator) + \sa {Use Git}{How To: Use Git}, {Git} + \endif +*/ - To work with Git branches, select \uicontrol {Branches}. The - \uicontrol {Git Branches} view shows a list of branches, as well +/*! + \page creator-how-to-git-branch.html + \if defined(qtdesignstudio) + \previouspage Using Git + \else + \previouspage creator-how-tos.html + \endif + + \ingroup creator-how-to-git-local-repository + + \ingroup studio-how-to-git + + \title git branch + + To work with Git branches, go to \uicontrol Tools > \uicontrol Git > + \uicontrol {Local Repository} and select \uicontrol {Branches}. + + The \uicontrol {Git Branches} view shows a list of branches, as well as the differences between your local branches and their origin. The branch you checked out is shown in bold and underlined. \image qtcreator-git-branches.webp {Git Branches view} + \section1 Filter entries and tags + Old entries and tags are filtered out of the list of branches by default. To include them, select \inlineimage icons/filtericon.png (\uicontrol {Filter Tree}), and then select @@ -329,7 +826,7 @@ To refresh the list of branches, select \inlineimage icons/reload_gray.png (\uicontrol Refresh). - \section3 Adding Branches + \section1 Add branches To create a new tracking or non-tracking branch, select \inlineimage icons/plus.png. @@ -341,7 +838,7 @@ To track the selected branch, select \uicontrol {Track local branch}. - \section3 Managing Branches + \section1 Manage branches The context menu for a branch has the following functions: @@ -375,17 +872,10 @@ \li Reset the active branch to the selected branch. You can choose between a \uicontrol Hard, \uicontrol Mixed, and \uicontrol Soft reset. For more information, see - \l{Resetting Local Repository}. + \l{git reset}. \row \li \uicontrol Merge \li Join the development histories in two branches together. - - If the commit you are merging can be reached by following the - first commit's history, there is no divergent work to merge - together. To allow Git to move the branch pointer forward, - select \uicontrol {Merge (Fast-Forward)}. If you do not want to - fast-forward the branch, select - \uicontrol {Merge (No Fast-Forward)}. \row \li \uicontrol Rebase \li Copy local commits to the updated upstream head. @@ -419,7 +909,38 @@ \li Open the \uicontrol Remotes dialog. \endtable - \section3 Configuring Merge Tools + \if defined(qtcreator) + \sa {Use Git}{How To: Use Git}, {Git} + \endif +*/ + +/*! + \page creator-how-to-git-merge.html + \if defined(qtdesignstudio) + \previouspage Using Git + \else + \previouspage creator-how-tos.html + \endif + + \ingroup creator-how-to-git-local-repository + + \ingroup studio-how-to-git + + \title git merge + + To join the development histories in two branches together, go to + \uicontrol Tools > \uicontrol Git > \uicontrol {Local Repository} + and select \uicontrol {Branches}. + + In the \uicontrol {Git Branches} view, right-click a remote branch, and + then select a merge option in the context menu. If the commit you are merging + can be reached by following the first commit's history, there is no divergent + work to merge together. To allow Git to move the branch pointer forward, + select \uicontrol {Merge into (Fast-Forward)}. + If you do not want to fast-forward the branch, select + \uicontrol {Merge into (No Fast-Forward)}. + + \section1 Configure merge tools Only graphical merge tools are supported. You can configure the merge tool to use on the command line. For example, to use the @@ -430,42 +951,107 @@ git config --global merge.tool kdiff3 \endcode - \section2 Applying Patches + \if defined(qtcreator) + \sa {Use Git}{How To: Use Git}, {Git} + \endif +*/ + +/*! + \page creator-how-to-git-apply-patch.html + \if defined(qtdesignstudio) + \previouspage Using Git + \else + \previouspage creator-how-tos.html + \endif + + \ingroup creator-how-to-git-local-repository + + \ingroup studio-how-to-git + + \title Apply patches Patches are rewriting instructions that Git can apply to a set of files. - To apply a patch file that is open in \QC, select \uicontrol Patch > + + To apply a patch file that is open in \QC, go to \uicontrol Tools > + \uicontrol Git > \uicontrol {Local Repository} and select \uicontrol Patch > \uicontrol {Apply from Editor}. To select the patch file to apply from the file system, select \uicontrol {Apply from File}. - \section2 Using Stashes + \if defined(qtcreator) + \sa {Use Git}{How To: Use Git}, {Git} + \endif +*/ + +/*! + \page creator-how-to-git-stash.html + \if defined(qtdesignstudio) + \previouspage Using Git + \else + \previouspage creator-how-tos.html + \endif + + \ingroup creator-how-to-git-local-repository + + \ingroup studio-how-to-git + + \title git stash With Git, you can put your current set of changes onto a virtual shelf called a \e stash. Stashes are useful, for example, to put aside a set of changes to work on higher priority tasks or to pull in new changes from another repository. - To stash all local changes, select \uicontrol Stash > \uicontrol Stash. The - working copy is reset to the state it had after the last commit. To save the - current state of your unstaged files and reset the repository to its staged - state, select \uicontrol {Stash Unstaged Files}. + \section1 Stash local changes + + To stash all local changes, go to \uicontrol Tools > \uicontrol Git > + \uicontrol {Local Repository} > \uicontrol Stash and select \uicontrol Stash. + The working copy is reset to the state it had after the last commit. + + To save the current state of your unstaged files and reset the repository to + its staged state, select \uicontrol {Stash Unstaged Files}. + + \section1 Manage stashed changes To display a dialog that shows all known stashes with options to restore, display or delete them, select \uicontrol Stashes. + \section1 Take a snapshot + To save a snapshot of your current work under a name for later reference, select \uicontrol {Take Snapshot}. The working copy is not changed. For example, if you want to try something and find out later that it does not work, you can discard the changes and return to the state of the snapshot. - To remove a single stashed state from the stash list and apply it on top of - the current working tree state, select \uicontrol {Stash Pop}. + \section1 Pop stashes - \section1 Applying Actions to Commits + To remove a single stashed state from the stash list and apply it on top of + the current working tree state, go to \uicontrol Tools > \uicontrol Git > + \uicontrol {Local Repository} > \uicontrol Stash and select + \uicontrol {Stash Pop}. + + \if defined(qtcreator) + \sa {Use Git}{How To: Use Git}, {Git} + \endif +*/ + +/*! + \page creator-how-to-git-commits.html + \if defined(qtdesignstudio) + \previouspage Using Git + \else + \previouspage creator-how-tos.html + \endif + + \ingroup creator-how-to-git-commits + + \ingroup studio-how-to-git + + \title Apply actions to commits To browse a directory or the commit history and to apply actions on the - commits, select \uicontrol Tools > \uicontrol Git > + commits, go to \uicontrol Tools > \uicontrol Git > \uicontrol {Actions on Commits}. \image creator-git-commit-actions.png {Select a Git Commit dialog} @@ -493,67 +1079,117 @@ \li Show the commit in the diff editor. \endtable - \section1 Working with Remote Repositories + \if defined(qtcreator) + \sa {Use Git}{How To: Use Git}, {Git} + \endif +*/ - To work with remote repositories, select the commands in \uicontrol Tools > - \uicontrol Git > \uicontrol {Remote Repository}. +/*! + \page creator-how-to-git-fetch.html + \if defined(qtdesignstudio) + \previouspage Using Git + \else + \previouspage creator-how-tos.html + \endif + + \ingroup creator-how-to-git-remote-repository + + \ingroup studio-how-to-git + + \title git fetch To fetch all the branches and change information from a remote repository, + go to \uicontrol Tools > \uicontrol Git > \uicontrol {Remote Repository} and select \uicontrol Fetch. - To pull changes from the remote repository, select \uicontrol Pull. If there - are locally modified files, you are prompted to stash the changes. Select - \preferences > \uicontrol {Version Control} > - \uicontrol Git and then select the \uicontrol {Pull with rebase} check box - to perform a rebase operation while pulling. + \if defined(qtcreator) + \sa {Use Git}{How To: Use Git}, {Git} + \endif +*/ + +/*! + \page creator-how-to-git-pull.html + \if defined(qtdesignstudio) + \previouspage Using Git + \else + \previouspage creator-how-tos.html + \endif + + \ingroup creator-how-to-git-remote-repository + + \ingroup studio-how-to-git + + \title git pull + + To pull changes from a remote repository, go to \uicontrol Tools > + \uicontrol Git > \uicontrol {Remote Repository} and select \uicontrol Pull. + + If you have modified files, you are prompted to stash the changes. + + \section1 Pull with rebase + + Go to \preferences > \uicontrol {Version Control} > \uicontrol Git, and then + select \uicontrol {Pull with rebase} to perform a rebase operation while + pulling. + + \if defined(qtcreator) + \sa {Use Git}{How To: Use Git}, {Git} + \endif +*/ + +/*! + \page creator-how-to-git-push.html + \if defined(qtdesignstudio) + \previouspage Using Git + \else + \previouspage creator-how-tos.html + \endif + + \ingroup creator-how-to-git-remote-repository + + \ingroup studio-how-to-git + + \title git push + + To push committed changes to the remote repository, go to \uicontrol Tools > + \uicontrol Git > \uicontrol {Remote Repository} and select \uicontrol Push. - To push committed changes to the remote repository, select \uicontrol Push. If the local branch does not have an upstream branch in the remote repository, \QC prompts you to create it and set it as upstream. - \section2 Managing Remote Repositories + \if defined(qtcreator) + \sa {Use Git}{How To: Use Git}, {Git} + \endif +*/ - To manage remote repositories available in Git, select \uicontrol Tools > - \uicontrol Git > \uicontrol {Remote Repository} > - \uicontrol{Manage Remotes}. Double-click the names and URLs of the remote - repositories to edit them. +/*! + \page creator-how-to-git-instant-blame.html + \if defined(qtdesignstudio) + \previouspage Using Git + \else + \previouspage creator-how-tos.html + \endif - The following operations are supported: + \ingroup creator-how-to-git-current-file - \table - \header - \li Menu Item - \li Description - \row - \li \uicontrol{Refresh} - \li Refresh the list of remote repositories. - \row - \li \uicontrol{Add} - \li Add a new remote repository. - \row - \li \uicontrol{Fetch} - \li Fetch all the branches and change information from a remote - repository. - \row - \li \uicontrol Push - \li Push committed changes to the remote repository. - \row - \li \uicontrol{Remove} - \li Remove a remote repository. + \ingroup studio-how-to-git - \endtable + \title Show instant blame - \section2 Using Instant Blame + Instant blame annotates the current editor line with its author and the date + this line was last changed. Optionally, the annotation shows the commit + subject. - Instant Blame annotates the current editor line with its author and date this - line was last changed. The commit subject can optionally be shown in the annotation. + To show instant blame for the current file, go to \uicontrol Tools > + \uicontrol Git > \uicontrol {Current File} and select + \uicontrol {Instant Blame for }. - \note Instant Blame is not available for unsaved files. + \note Instant blame is not available for unsaved files. - To show the latest real changes to the line, configure Instant Blame to ignore + To show the latest real changes to the line, configure instant blame to ignore whitespace changes and line moves. - When you hover the annotation, a tooltip with additional information is shown. + When you hover over the annotation, a tooltip with additional information is shown. From the tooltip, the following actions are available: \table @@ -573,7 +1209,7 @@ \li Log for line \li Shows a log with all the commits that touched the \e line. \row - \li Icon "Copy" + \li \inlineimage icons/copy.png \li Copies the full \e hash to the clipboard. \row \li commit @@ -582,98 +1218,179 @@ \note Most of these actions have no meaning for uncommmited changes. - \section2 Using Git with Subversion + \if defined(qtcreator) + \sa {Use Git}{How To: Use Git}, {Git} + \endif +*/ + +/*! + \page creator-how-to-git-with-subversion.html + \if defined(qtdesignstudio) + \previouspage Using Git + \else + \previouspage creator-how-tos.html + \endif + + \ingroup creator-how-to-git + + \ingroup studio-how-to-git-gs + + \title Use Git with Subversion You can use Git as a client for a Subversion server. To fetch changes from a - Subversion repository to a Git repository, select \uicontrol Tools > + Subversion repository to a Git repository, go to \uicontrol Tools > \uicontrol Git > \uicontrol {Remote Repository} > \uicontrol Subversion > \uicontrol Fetch. + \section1 View Git Subversion log + To view the Git Subversion log, select \uicontrol Log. + \section1 Publish commits to Subversion + To publish the commits from the current branch to the Subversion server, select \uicontrol DCommit. This will create a revision in Subversion for every local Git commit. Afterwards, the branch is rebased or reset - (depending on whether or not there is a diff between Subversion and head). + depending on whether or not there is a diff between Subversion and head. - \section2 Reviewing Code with Gerrit + \if defined(qtcreator) + \sa {Use Git}{How To: Use Git}, {Git} + \endif +*/ + +/*! + \page creator-how-to-gerrit.html + \if defined(qtdesignstudio) + \previouspage Using Git + \else + \previouspage creator-how-tos.html + \endif + + \ingroup creator-how-to-git-remote-repository + + \ingroup studio-how-to-git + + \title Review code with Gerrit If your Git project uses Gerrit for code reviews, you can view your changes in \QC. - To push committed changes to Gerrit, select \uicontrol Tools > + To push committed changes to Gerrit, go to \uicontrol Tools > \uicontrol Git > \uicontrol {Remote Repository} > \uicontrol {Push to Gerrit}. \image qtcreator-gerrit-push.png - Select the \uicontrol {Draft/private} check box to push changes that are + \section1 Push drafts to Gerrit + + Select \uicontrol {Draft/private} to push changes that are only visible to you and the reviewers. If you are using Gerrit 2.15 or - later, you can select the \uicontrol {Work-in-progress} check box to push + later, you can select \uicontrol {Work-in-progress} to push changes that do not generate email notifications. + \section1 View changes as in Gerrit + To view the same information about each change as in the Gerrit - web interface, select \uicontrol Tools > \uicontrol Git > + web interface, go to \uicontrol Tools > \uicontrol Git > \uicontrol {Remote Repository} > \uicontrol Gerrit. \image qtcreator-gerrit.png + \section1 View details of changes + To view details of the selected change, select \uicontrol Show. + \section1 Cherry-pick changes + To cherry-pick the selected change to the local repository, select \uicontrol {Cherry Pick}. To remove the change after testing it, select \uicontrol Tools > \uicontrol Git > \uicontrol {Local Repository} > \uicontrol Reset. In the \uicontrol {Undo Changes to} dialog, select the state to reset the working directory to, and then select \uicontrol OK. + \section1 Checkout changes + To check out the change in a headless state, select \uicontrol Checkout. + \section1 Refresh changes + To refresh the list of changes, select \uicontrol Refresh. - The \uicontrol Remote field lists the remotes of the current repository that - are detected as Gerrit servers. Select \preferences > + \uicontrol Remote lists the remotes of the current repository that + are detected as Gerrit servers. Go to \preferences > \uicontrol {Version Control} > \uicontrol Gerrit to specify a fallback connection to a Gerrit server over SSH. The Gerrit REST interface and the \l{https://curl.haxx.se/}{curl} tool are used for HTTP connections. - Select the \uicontrol HTTPS check box to prepend \c https to the Gerrit URL + Select \uicontrol HTTPS to prepend \c https to the Gerrit URL if Gerrit does not add it. \image qtcreator-preferences-vcs-gerrit.webp {Gerrit preferences} - \section1 Working with Git Tools + \if defined(qtcreator) + \sa {Use Git}{How To: Use Git}, {Git} + \endif +*/ - To start a graphical interface to Git, select \uicontrol Tools > +/*! + \page creator-how-to-git-tools.html + \if defined(qtdesignstudio) + \previouspage Using Git + \else + \previouspage creator-how-tos.html + \endif + + \ingroup creator-how-to-git + + \ingroup studio-how-to-git-gs + + \title Git Tools + + \section1 Git Gui + + To start a graphical interface to Git, go to \uicontrol Tools > \uicontrol Git > \uicontrol {Git Tools} > \uicontrol {Git Gui}. \note On \macos, the default Git installation does not have Git Gui. To - use Git Gui, install it separately. To start Git Gui from \QC, select + use Git Gui, install it separately. To start Git Gui from \QC, go to \preferences > \uicontrol {Version Control} > \uicontrol Git, and - set the path to the environment that has Git Gui in the - \uicontrol {Prepend to PATH} field. + set the path to the environment that has Git Gui in + \uicontrol {Prepend to PATH}. - To start the commit viewer for Git, select \uicontrol Tools > + \section1 Gitk + + To start the commit viewer for Git, go to \uicontrol Tools > \uicontrol Git > \uicontrol {Git Tools} > \uicontrol Gitk. You can also start the tool to view commits in the current document or in the folder that - has the current document. To specify arguments for running Gitk, select + has the current document. To specify arguments for running Gitk, go to \preferences > \uicontrol {Version Control} > \uicontrol Git. + \section1 Other repository browsers + To use some other application for viewing Git history, such as GitX or - QGit viewer, select \preferences > \uicontrol {Version Control} > - \uicontrol Git and specify the path to the - application executable in the \uicontrol {Command} field. To start the - application, select \uicontrol Tools > \uicontrol Git + QGit viewer: + + \list 1 + \li Go to \preferences > \uicontrol {Version Control} > \uicontrol Git. + \li In \uicontrol {Command}, specify the path to the application + executable. + \endlist + + To start the application, go to \uicontrol Tools > \uicontrol Git > \uicontrol {Git Tools} > \uicontrol {Repository Browser}. - To start \c {git bash}, select \uicontrol Tools > \uicontrol Git > + \section1 Git Bash + + To start Git Bash, go to \uicontrol Tools > \uicontrol Git > \uicontrol {Git Tools} > \uicontrol {Git Bash}. - To resolve merge conflicts, select \uicontrol Tools > \uicontrol Git > + \section1 Merge tools + + To resolve merge conflicts, go to \uicontrol Tools > \uicontrol Git > \uicontrol {Git Tools} > \uicontrol {Merge Tool}. This menu item is visible only when you have merge conflicts to resolve. \if defined(qtcreator) - \sa {Compare files}, {Set up version control systems}, - {Version Control Systems} + \sa {Use Git}{How To: Use Git}, {Git} \endif */ diff --git a/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc b/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc index 58c2c9d123e..a6af0defe0a 100644 --- a/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc +++ b/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc @@ -242,6 +242,8 @@ \list \li \l{Finding the Qt Runtime Version} \li \l{Using Git} + \generatelist studio-how-to-git-gs + \generatelist studio-how-to-git \li \l{Converting Qt 5 Projects into Qt 6 Projects} \li \l{Converting UI Projects to Applications} \li \l{Use external tools}