Categories


Popular topics

(Created page with "Category:Project tab <span class="idm-uestudio-only">''This feature is available in [https://www.ultraedit.com/products/uestudio/ UEStudio] only.''</span> Git is a very p...")
 
(Using the Git sub-menu in the Explorer / Project panes)
 
(7 intermediate revisions by the same user not shown)
Line 6: Line 6:
 
In order to use Git with UEStudio, you need to have a Git client installed. [https://git-scm.com/download/win Git for Windows] is recommended.  
 
In order to use Git with UEStudio, you need to have a Git client installed. [https://git-scm.com/download/win Git for Windows] is recommended.  
  
If you already have Git for Windows installed on your system, then on first run UEStudio will detect this and prompt you to import your Git credentials. Otherwise, you can [[#Configuring Git|configure Git]] in UEStudio's settings.
+
If you already have Git for Windows installed on your system, then on first run UEStudio will detect this and prompt you to import your Git credentials. Otherwise, you can configure Git in UEStudio's settings under [[Settings:Integrated applications:Version control systems:Git|Integrated applications &raquo; Version control systems &raquo; Git]].
  
 
[[File:UEStudio_Git_autodetection.png]]
 
[[File:UEStudio_Git_autodetection.png]]
Line 12: Line 12:
 
==Using Git==
 
==Using Git==
 
[[File:UEStudio_Git_integration_in_Workspace_Manager.png|right]]
 
[[File:UEStudio_Git_integration_in_Workspace_Manager.png|right]]
Once Git is properly configured on your system, you can then begin interacting with repositories and objects through two different methods:
+
Once Git is properly configured on your system, you can then begin interacting with repositories and objects through four different methods:
  
# Browse to a Git repo folder in the "Explorer" tab of the [[File view|Workspace Manager]].
+
# Via the [[#Using the Git sub-menu in the Explorer / Project panes|Git context menu]] for Git repositories in the "Explorer" or "Project" tab of the [[File view|Workspace Manager]].
# Add a Git repo folder to your project and view it in the "Project" tab of the [[File view|Workspace Manager]].
+
# Through the Git commands in the "Version control" group of the [[:Category:Project tab|Project tab]].
 +
# Through the Git [[Branch manager]].
 +
# Through the [[Git shell]].
  
In both cases (if Git integration is configured in UEStudio properly) UEStudio will display the repo folder with a special Git icon overlay. If in a project, UEStudio will display the current branch and commits ahead/behind directly beneath the folder name.
+
In both cases (if Git integration is configured in UEStudio properly) UEStudio will display the repo folder with a special Git icon overlay. If in a project, UEStudio will display the current branch and commits ahead / behind directly beneath the folder name.
  
Additionally, a special "Git" sub-menu is available in the context menu for files/folders under Git in the "Explorer" and "Project" tabs. This sub-menu contains many commands for interacting with the Git repository.
+
Additionally, a special "Git" sub-menu is available in the context menu for files / folders under Git in the "Explorer" and "Project" tabs. This sub-menu contains many commands for interacting with the Git repository.
  
 
===Creating and cloning repositories===
 
===Creating and cloning repositories===
Line 25: Line 27:
 
* To '''clone an existing Git repository''', right-click on the folder where you want to clone the repository and select '''Git''' &raquo; '''Clone repository...''' This will open the "Clone repository" dialog where you can enter the full path or the URL (SSH or HTTP[S]) to the repository. This dialog also contains the following options:
 
* To '''clone an existing Git repository''', right-click on the folder where you want to clone the repository and select '''Git''' &raquo; '''Clone repository...''' This will open the "Clone repository" dialog where you can enter the full path or the URL (SSH or HTTP[S]) to the repository. This dialog also contains the following options:
 
** '''Branch'''<br>This option allows you to specify which branch to switch to when cloning a repository. If left empty, or if a branch is provided that doesn't exist, this will default to the HEAD branch.
 
** '''Branch'''<br>This option allows you to specify which branch to switch to when cloning a repository. If left empty, or if a branch is provided that doesn't exist, this will default to the HEAD branch.
** '''Depth'''<br>This option allows you to create a '''shallow''' clone where the repository history is truncted to the specified number of revisions. For example, if you enter "2" here, the history for only the last 2 revisions will be available in your locally checked out repository.  
+
** '''Depth'''<br>This option allows you to create a '''shallow''' clone where the repository history is truncated to the specified number of revisions. For example, if you enter "2" here, the history for only the last 2 revisions will be available in your locally checked out repository.  
 
** '''No checkout'''<br>This option will clone the repository ''without'' checking out a branch, essentially creating a disconnected Git branch.
 
** '''No checkout'''<br>This option will clone the repository ''without'' checking out a branch, essentially creating a disconnected Git branch.
** '''Recursive'''<br>This option will clone the repository along with any submodules contained within it.
+
** '''Recursive'''<br>This option will clone the repository along with any sub-modules contained within it.
  
===Interacting with repositories===
+
===Using the Git sub-menu in the Explorer / Project panes===
 +
The "Git" sub-menu in the context menu of the "Explorer" and "Project" pane of the [[File view|Workspace Manager]] includes the following options.
  
===Managing branches===
+
'''For top-level repository folders:'''
  
===Using the integrated Git shell===
+
{|
 +
|'''Branch manager'''
 +
|Opens the Git [[Branch manager|branch manager]] window.
 +
|-
 +
|'''Status'''
 +
|Updates status of Git repository, shown in [[Git shell]] window.
 +
|-
 +
|'''Show log'''
 +
|Outputs history log for entire repository to [[Git shell]] window.
 +
|-
 +
|'''Add all new files'''
 +
|Adds all new files in the folder to the Git repository.
 +
|-
 +
|'''Commit'''
 +
|Commits all staged changes to the Git repository.
 +
|-
 +
|'''Resume merge'''
 +
|Attempts to resume merge after conflicts have been manually resolved by user. (This option is only available after all conflict files have been marked "Resolved" by the user.)
 +
|-
 +
|'''Abort merge'''
 +
|Aborts the merge that caused conflicts and restores local repository to state it was in prior to the pull / merge attempt. (This option is only available when one or more files in the repository is in a conflict state.)
 +
|-
 +
|'''Resume rebase'''
 +
|Attempts to resume rebase after conflicts have been manually resolved by user. (This option is only available after all conflict files have been marked "Resolved" by the user.)
 +
|-
 +
|'''Abort rebase'''
 +
|Aborts the rebase that caused conflicts and restores local repository to state it was in prior to the rebase attempt. (This option is only available when one or more files in the repository is in a conflict state.)
 +
|-
 +
|'''Reapply stash'''
 +
|Opens the "Apply stash" dialog where you can choose a pre-existing stash to apply to the current branch.
 +
|-
 +
|'''Push'''
 +
|Pushes the locally committed objects to the associated remote repository.
 +
|-
 +
|'''Pull'''
 +
|Pulls all objects from associated remote repository to local repository.
 +
|-
 +
|'''Launch shell'''
 +
|Opens the [[Git shell]] window.
 +
|-
 +
|'''Sort files by Git status'''
 +
|Shows files with a "modified" or "conflict" status to be moved to the top of the file list. (Available for "Explorer" pane only.)
 +
|-
 +
|'''Config &raquo; Open .gitignore'''
 +
|Opens repository's ".gitignore" file for editing.
 +
|-
 +
|'''Config &raquo; Open config file'''
 +
|Opens repository's local ".git\config" file for editing.
 +
|}
  
==Configuring Git==
+
'''For repository files:'''
 +
 
 +
{|
 +
|'''Add &raquo; ''file name'''''
 +
|Adds selected file to the repository. (This option is only available if the file has not yet been added to the repository.)
 +
|-
 +
|'''Add &raquo; ''file extension'''''
 +
|Adds all new files with the selected file's extension to the repository. (This option is only available if the file has not yet been added to the repository.)
 +
|-
 +
|'''Add to ignore list &raquo; ''file name'''''
 +
|Adds the selected file to the repository's .gitignore file and excludes it from the repository. (This option is only available if the file has not yet been added to the repository.)
 +
|-
 +
|'''Add to ignore list &raquo; ''file extension'''''
 +
|Adds the selected file's extension only to the repository's .gitignore file. All files matching this extension will be excluded from the repository. (This option is only available if the file has not yet been added to the repository.)
 +
|-
 +
|'''Commit this file only'''
 +
|Allows you to commit just the selected file to the repository. (This option is only available if the file is modified.)
 +
|-
 +
|'''Mark resolved'''
 +
|Allows you to set the selected conflict file to "resolved" to resume the merge / rebase. (This option is only available if the file is in a conflict state.)
 +
|-
 +
|'''Diff'''
 +
|Shows Git diff output for the selected file in [[Git shell]] window. (This option is only available if the file is modified.)
 +
|-
 +
|'''Diff with UltraCompare'''
 +
|Sends modified and repository versions of the selected file to UltraCompare Professional for text compare. (This option is only available if the file is modified.)
 +
|-
 +
|'''Revert'''
 +
|Reverts all uncommitted changes and restores repository version of the selected file. (This option is only available if the file is modified.)
 +
|-
 +
|'''Show log'''
 +
|Outputs history log for the selected file to [[Git shell]] window.
 +
|-
 +
|'''Blame'''
 +
|Shows what revision and author last modified each line of the selected file.
 +
|}
 +
 
 +
===Git file icon overlays in the Explorer / Project panes===
 +
Git repositories that have been added to a project are shown in the "Project" pane with the current branch name and commits ahead / behind directly beneath them. The color used also indicates the state of the repository:
 +
* If '''green''', there are no uncommitted changes in the local Git repository.
 +
* If '''orange''', there are uncommitted changes in the local Git repository.
 +
* If '''red''', there are conflicts in the local Git repository that need to be resolved.
 +
 
 +
UEStudio will show the following icon overlays for files and folders that are part of a Git repository:
 +
 
 +
{|
 +
!Icon
 +
!Meaning
 +
|-
 +
|[[File:Git-icon-folder-updated.png]]
 +
|The folder and all its contents are up-to-date; all changes are committed to the repository.
 +
|-
 +
|[[File:Git-icon-file-updated.png]]
 +
|The file is up-to-date and committed to the repository.
 +
|-
 +
|[[File:Git-icon-folder-modified.png]]
 +
|One or more files in the folder has uncommitted changes.
 +
|-
 +
|[[File:Git-icon-file-modified.png]]
 +
|The file has uncommitted changes.
 +
|-
 +
|[[File:Git-icon-file-added.png]]
 +
|The file has been newly added to the repostiory but has not yet been committed.
 +
|-
 +
|[[File:Git-icon-folder-unknown.png]]
 +
|The folder and all its contents are not a part of the Git repository.
 +
|-
 +
|[[File:Git-icon-file-unknown.png]]
 +
|The file is not a part of the Git repository.
 +
|-
 +
|[[File:Git-icon-folder-conflict.png]]
 +
|One or more files in the folder is in a conflict state as a result of an automatic merge or rebase.
 +
|-
 +
|[[File:Git-icon-file-conflict.png]]
 +
|The file is in a conflict state as a result of an automatic merge or rebase and must be manually resolved.
 +
|-
 +
|[[File:Git-icon-folder-ignored.png]]
 +
|The folder and all its contents are ignored from the Git repository due to an ignore rule in the ".gitignore" file.
 +
|-
 +
|[[File:Git-icon-file-ignored.png]]
 +
|The file is ignored from the Git repository due to an ignore rule in the ".gitignore" file.
 +
|}
 +
 
 +
<div class="idm-see-also">
 +
See also:
 +
* [[Branch manager]]
 +
* [[Git shell]]
 +
* [[Settings:Integrated_applications:Version_control_systems:Git|Settings &raquo; Integrated applications &raquo; Integrated applications &raquo; VCS &raquo; Git]]
 +
</div>

Latest revision as of 18:59, 5 October 2020

This feature is available in UEStudio only.

Git is a very popular distributed version control system. UEStudio offers robust Git integration so that you can directly interact with Git repositories from within the application. You can learn more about Git and read over its full documentation at the official Git website.

In order to use Git with UEStudio, you need to have a Git client installed. Git for Windows is recommended.

If you already have Git for Windows installed on your system, then on first run UEStudio will detect this and prompt you to import your Git credentials. Otherwise, you can configure Git in UEStudio's settings under Integrated applications » Version control systems » Git.

UEStudio Git autodetection.png

Using Git

right Once Git is properly configured on your system, you can then begin interacting with repositories and objects through four different methods:

  1. Via the Git context menu for Git repositories in the "Explorer" or "Project" tab of the Workspace Manager.
  2. Through the Git commands in the "Version control" group of the Project tab.
  3. Through the Git Branch manager.
  4. Through the Git shell.

In both cases (if Git integration is configured in UEStudio properly) UEStudio will display the repo folder with a special Git icon overlay. If in a project, UEStudio will display the current branch and commits ahead / behind directly beneath the folder name.

Additionally, a special "Git" sub-menu is available in the context menu for files / folders under Git in the "Explorer" and "Project" tabs. This sub-menu contains many commands for interacting with the Git repository.

Creating and cloning repositories

  • To create a new Git repository, right-click on the folder where you want to initialize the repository, and select Git » Create/initialize repository here. The hidden ".git" subfolder will be created, and you can begin adding, staging, and committing files.
  • To clone an existing Git repository, right-click on the folder where you want to clone the repository and select Git » Clone repository... This will open the "Clone repository" dialog where you can enter the full path or the URL (SSH or HTTP[S]) to the repository. This dialog also contains the following options:
    • Branch
      This option allows you to specify which branch to switch to when cloning a repository. If left empty, or if a branch is provided that doesn't exist, this will default to the HEAD branch.
    • Depth
      This option allows you to create a shallow clone where the repository history is truncated to the specified number of revisions. For example, if you enter "2" here, the history for only the last 2 revisions will be available in your locally checked out repository.
    • No checkout
      This option will clone the repository without checking out a branch, essentially creating a disconnected Git branch.
    • Recursive
      This option will clone the repository along with any sub-modules contained within it.

Using the Git sub-menu in the Explorer / Project panes

The "Git" sub-menu in the context menu of the "Explorer" and "Project" pane of the Workspace Manager includes the following options.

For top-level repository folders:

Branch manager Opens the Git branch manager window.
Status Updates status of Git repository, shown in Git shell window.
Show log Outputs history log for entire repository to Git shell window.
Add all new files Adds all new files in the folder to the Git repository.
Commit Commits all staged changes to the Git repository.
Resume merge Attempts to resume merge after conflicts have been manually resolved by user. (This option is only available after all conflict files have been marked "Resolved" by the user.)
Abort merge Aborts the merge that caused conflicts and restores local repository to state it was in prior to the pull / merge attempt. (This option is only available when one or more files in the repository is in a conflict state.)
Resume rebase Attempts to resume rebase after conflicts have been manually resolved by user. (This option is only available after all conflict files have been marked "Resolved" by the user.)
Abort rebase Aborts the rebase that caused conflicts and restores local repository to state it was in prior to the rebase attempt. (This option is only available when one or more files in the repository is in a conflict state.)
Reapply stash Opens the "Apply stash" dialog where you can choose a pre-existing stash to apply to the current branch.
Push Pushes the locally committed objects to the associated remote repository.
Pull Pulls all objects from associated remote repository to local repository.
Launch shell Opens the Git shell window.
Sort files by Git status Shows files with a "modified" or "conflict" status to be moved to the top of the file list. (Available for "Explorer" pane only.)
Config » Open .gitignore Opens repository's ".gitignore" file for editing.
Config » Open config file Opens repository's local ".git\config" file for editing.

For repository files:

Add » file name Adds selected file to the repository. (This option is only available if the file has not yet been added to the repository.)
Add » file extension Adds all new files with the selected file's extension to the repository. (This option is only available if the file has not yet been added to the repository.)
Add to ignore list » file name Adds the selected file to the repository's .gitignore file and excludes it from the repository. (This option is only available if the file has not yet been added to the repository.)
Add to ignore list » file extension Adds the selected file's extension only to the repository's .gitignore file. All files matching this extension will be excluded from the repository. (This option is only available if the file has not yet been added to the repository.)
Commit this file only Allows you to commit just the selected file to the repository. (This option is only available if the file is modified.)
Mark resolved Allows you to set the selected conflict file to "resolved" to resume the merge / rebase. (This option is only available if the file is in a conflict state.)
Diff Shows Git diff output for the selected file in Git shell window. (This option is only available if the file is modified.)
Diff with UltraCompare Sends modified and repository versions of the selected file to UltraCompare Professional for text compare. (This option is only available if the file is modified.)
Revert Reverts all uncommitted changes and restores repository version of the selected file. (This option is only available if the file is modified.)
Show log Outputs history log for the selected file to Git shell window.
Blame Shows what revision and author last modified each line of the selected file.

Git file icon overlays in the Explorer / Project panes

Git repositories that have been added to a project are shown in the "Project" pane with the current branch name and commits ahead / behind directly beneath them. The color used also indicates the state of the repository:

  • If green, there are no uncommitted changes in the local Git repository.
  • If orange, there are uncommitted changes in the local Git repository.
  • If red, there are conflicts in the local Git repository that need to be resolved.

UEStudio will show the following icon overlays for files and folders that are part of a Git repository:

Icon Meaning
Git-icon-folder-updated.png The folder and all its contents are up-to-date; all changes are committed to the repository.
Git-icon-file-updated.png The file is up-to-date and committed to the repository.
Git-icon-folder-modified.png One or more files in the folder has uncommitted changes.
Git-icon-file-modified.png The file has uncommitted changes.
Git-icon-file-added.png The file has been newly added to the repostiory but has not yet been committed.
Git-icon-folder-unknown.png The folder and all its contents are not a part of the Git repository.
Git-icon-file-unknown.png The file is not a part of the Git repository.
Git-icon-folder-conflict.png One or more files in the folder is in a conflict state as a result of an automatic merge or rebase.
Git-icon-file-conflict.png The file is in a conflict state as a result of an automatic merge or rebase and must be manually resolved.
Git-icon-folder-ignored.png The folder and all its contents are ignored from the Git repository due to an ignore rule in the ".gitignore" file.
Git-icon-file-ignored.png The file is ignored from the Git repository due to an ignore rule in the ".gitignore" file.
MediaWiki spam blocked by CleanTalk.