├── docs ├── start-here │ ├── copy-link.png │ ├── copy-link@2x.png │ ├── integrations.md │ ├── terminal.md │ ├── command-palette.md │ ├── themes.md │ ├── teams.md │ ├── profiles.md │ ├── tips.md │ ├── preferences.md │ ├── guide.md │ └── keyboard-shortcuts.md ├── main.js ├── working-with-repositories │ ├── project-groups.md │ ├── linking.md │ ├── hiding-and-soloing.md │ ├── favorites.md │ ├── fork.md │ ├── interactive-rebase.md │ ├── tags.md │ ├── team-view.md │ ├── submodules.md │ ├── activity-logs.md │ ├── terminal.md │ ├── open-clone-init.md │ ├── githooksexample.md │ ├── githooks.md │ ├── workspaces.md │ ├── branching-and-merging.md │ ├── pull-requests-filter-syntax.md │ └── pushing-and-pulling.md ├── working-with-commits │ ├── cherrypick.md │ ├── undo-and-redo.md │ ├── search.md │ ├── squash.md │ ├── stashing.md │ ├── detached-head-state.md │ ├── staging.md │ ├── diff.md │ └── commits.md ├── git-workflows-and-extensions │ ├── working-with-files.md │ ├── github-actions.md │ ├── lfs-faqs.md │ ├── git-lfs.md │ ├── git-flow.md │ ├── intro-and-requirements.md │ └── commit-signing-with-gpg.md ├── working-with-files │ ├── adding-and-removing.md │ └── editing-files.md ├── index.md ├── how-to-install.md └── release-notes │ └── 5x.md └── README.md /docs/start-here/copy-link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gitkraken/foundations-of-git-exercise-repo/HEAD/docs/start-here/copy-link.png -------------------------------------------------------------------------------- /docs/start-here/copy-link@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gitkraken/foundations-of-git-exercise-repo/HEAD/docs/start-here/copy-link@2x.png -------------------------------------------------------------------------------- /docs/main.js: -------------------------------------------------------------------------------- 1 | var ss = document.createElement("link"); 2 | ss.type = "text/css"; 3 | ss.rel = "stylesheet"; 4 | ss.href = "https://use.fontawesome.com/releases/v5.6.3/css/all.css"; 5 | ss.crossOrigin = 'anonymous'; 6 | ss.integrity ='sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/' 7 | document.getElementsByTagName("head")[0].appendChild(ss); 8 | 9 | (function(d, s) { 10 | s = d.createElement('script'); 11 | s.src = '//js.hs-scripts.com/544893.js'; 12 | s.setAttribute('type', 'text/javascript'); 13 | s.setAttribute('async', 'true'); 14 | s.setAttribute('defer', 'defer'); 15 | s.setAttribute('id', 'hs-script-loader'); 16 | d.body.appendChild(s); 17 | })(document); 18 | -------------------------------------------------------------------------------- /docs/working-with-repositories/project-groups.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Project Directories 4 | description: Add a project directory to better access folders with multiple repos. 5 | 6 | --- 7 | 8 | Add a folder to better access folders with multiple repos. 9 | 10 | You may access the repository management window by clicking the file icon in the upper left corner of the app, from GitKraken Client home view, or from the [Command Palette](/start-here/command-palette). 11 | 12 | 13 | 14 | 15 | Then click this green plus icon to add a project directory: 16 | 17 | 18 | 19 | This will make it easier to access repos you store in this folder. 20 | -------------------------------------------------------------------------------- /docs/start-here/integrations.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Integrations 4 | description: Integrating with remote services and issue trackers has never been easier. 5 | 6 | --- 7 | 8 | ## Remote repo integrations 9 | 10 | GitKraken Client allows you to connect many different services and platforms, making it easy to work with your remote repositories. 11 | 12 | - [GitHub](/integrations/github/) 13 | - [GitHub Enterprise](/integrations/github-enterprise/) 14 | - [GitLab](/integrations/gitlab/) 15 | - [GitLab Self-Managed](/integrations/gitlab-self-hosted/) 16 | - [Bitbucket](/integrations/bitbucket) 17 | - [Bitbucket Server](/integrations/bitbucket-server/) 18 | - [Azure DevOps](/integrations/visual-studio-team-services/) 19 | 20 | ## Issue tracker integrations 21 | 22 | GitKraken Client makes it easy to integrate with a wide variety of issue tracking and project management tools. 23 | 24 | - [Jira](/integrations/jira/) 25 | - [Jira Server](/integrations/jira-server/) 26 | - [GitKraken Boards](/integrations/boards/) 27 | - [Trello](/integrations/trello/) 28 | - [GitLab Issues](/integrations/gitlab-issues/) 29 | - [GitLab Self-Managed Issues](/integrations/gitlab-self-managed-issues/) 30 | - [GitHub Issues](/integrations/github-issues/) 31 | - [GitHub Enterprise Issues](/integrations/github-enterprise-issues/) -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Foundation of Git - Exercise Repository 2 | 3 | Welcome! This is the sandbox repository for the [Foundations of Git](https://learn.gitkraken.com) course. Use this repository for exercise lessons, or as a sandbox for your own exploration. 4 | 5 | ## Cloning with GitKraken Desktop 6 | 7 | 1. [Fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo#forking-a-repository) the repo on GitHub 8 | 2. Download [GitKraken Desktop](https://gitkraken.com) 9 | 3. Connect with GitHub account (not required, but helpful) 10 | 4. From New Tab, click the "Clone a repo" button 11 | - If you connected with GitHub, select GitHub.com tab and use dropdown menu to select fork. Then clone to your machine. 12 | - If not connected with GitHub, use the "Clone with URL" option and paste the Clone URL from fork repo page on GitHub. Then clone to your machine. 13 | 14 | 5. Success! Refer back to [course lessons](https://learn.gitkraken.com) for exercises. 15 | 16 | 17 | ## Resetting the repo 18 | 19 | Each exercise will provide instructions on how to reset the repo to the previous state. 20 | 21 | However, to completely reset the repo back to its original state, consider deleting your GitHub fork and your local copy of the repository on your machine. Then follow the instructions above to fork and clone the repo once more. 22 | -------------------------------------------------------------------------------- /docs/start-here/terminal.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Terminal Tab 4 | description: A Git-enhanced terminal experience with GitKraken’s powerful visual Git commit graph 5 | --- 6 | 7 | The Git Client includes a [terminal](/working-with-repositories/terminal), which allows users to use Git CLI commands as well as additional GitKraken CLI specific commands. 8 | 9 | ### Open a Terminal 10 | 11 | To get started open up a repository and click the Terminal button in the toolbar. 12 | 13 | 14 | 15 | --- 16 | 17 | ### Commands to explore 18 | 19 | Once in the Terminal enter Git commands by starting with `git`. 20 | 21 | 22 | 23 | You can also enter GitKraken CLI specific commands with `gk`. 24 | 25 | 26 | 27 | --- 28 | 29 | ### More information 30 | 31 | For a list of GitKraken CLI commands and further information about the Terminal, explore the Terminal documentation. 32 | -------------------------------------------------------------------------------- /docs/working-with-commits/cherrypick.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Cherry Pick 4 | description: Learn how to get changes from one commit to add it to your current branch. 5 | 6 | --- 7 | 8 | Sometimes you commit to one branch, when you meant to commit to another. Here's how to grab the changes you need. 9 | 10 | *** 11 | To cherry pick a commit, right click on a commit node and select the Cherrypick Commit option: 12 | 13 | 14 | 15 | The cherry pick action is also available from _Local_ on the left panel. 16 | 17 | Here, cherry pick grabs the changes from the commit referenced by the HEAD of that branch, and places them onto the branch currently checked out. 18 | 19 | 20 | 21 | *** 22 | ### Additional Learning Git Resources: 23 | 24 |

25 | Cherry Pick Tutorial | Learn Git: What is Cherry Pick? 26 |

-------------------------------------------------------------------------------- /docs/working-with-repositories/linking.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Deep Linking 4 | description: Share links to specific remote repositories, commits, branches, and tags in GitKraken Client. 5 | 6 | --- 7 | 8 | Use links to quickly share specific remote repositories, commits, branches, and tags with your teammates to open them in GitKraken Client. 9 | 10 | ### Where to grab a link 11 | 12 | You can find links in most right-click context menus throughout GitKraken Client. 13 | 14 | 15 | 16 | ### What to do with a link 17 | 18 | The link is copied to your clipboard. You can paste anywhere to share with others, for example on a Jira issue or a Slack conversation. 19 | 20 | When you have a link shared with you, simply click and away you go! 21 | 22 | 23 | 24 | Additional information: 25 | 26 | * If the link is to a branch, commit, or tag, and the repository is not open, GitKraken Client will attempt to open the repository. 27 | * If you do not have the repository cloned, GitKraken Client will ask if you want to clone the repository, take you to the clone modal, and autofill the clone information. 28 | * If you have multiple copies of a repository on your local machine GitKraken Client will prompt you asking which repository you want to open. -------------------------------------------------------------------------------- /docs/working-with-commits/undo-and-redo.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Undo & Redo 4 | description: The secret menu to GitKraken Client. Learn more about the Command bar, Command Palette and general tips for working faster. 5 | 6 | --- 7 | 8 | Ever use the command line, hit the enter key and have that awful moment where you're not sure if something dreadful just happened? How often do you or your coworkers find yourselves wishing you could undo something in Git? 9 | 10 | GitKraken Client can undo many of these changes with a single click of the undo button. 11 | 12 | 13 | 14 | The following actions can be undone in GitKraken Client: 15 | 16 | + Checkout 17 | + Commit 18 | + Discard 19 | + Delete branch 20 | + Remove remote 21 | + Reset branch to a commit 22 | 23 | 24 | You can also redo actions if you undo them by mistake. 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 45 | 47 | 48 | 49 |
 MacWindows/Linux
UndoZCtrlZ
RedoY
44 | ShiftZ
CtrlY
46 | CtrlShiftZ
50 | -------------------------------------------------------------------------------- /docs/git-workflows-and-extensions/working-with-files.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Working with Git LFS Files 4 | description: Learn how to work with LFS files within GitKraken Client. 5 | 6 | --- 7 | 8 | When a file matches a pattern that is being tracked by LFS, an LFS tag appears next to the file name in the right panel. 9 | 10 | 11 | 12 | Clicking on the file shows the LFS reference information: 13 | 14 | 15 | 16 | Staging and committing LFS tracked files results in the reference files being saved to your local repo and the actual files being saved to your local LFS cache. 17 | 18 | Once your repo is pushed to an LFS-capable remote, the reference files will be saved to the remote repo and the actual files will be pushed to your specified LFS server. 19 | 20 | Most LFS actions, such as Checkout, Fetch, Pull, and Push will happen automatically as you use the standard commands in GitKraken Client. However, if you want to use an LFS command in isolation, use the LFS toolbar menu: 21 | 22 | 23 | 24 | Click the arrow on the button and select the desired command. Other than _Prune_, all of the commands are run by GitKraken Client via the traditional operations. 25 | 26 |
27 |

Note: Pruning is not automatic. Pruning is considered a destructive operation, so be careful about when you run the Prune command. See the Git LFS documentation to learn more.

28 |
29 | -------------------------------------------------------------------------------- /docs/working-with-repositories/hiding-and-soloing.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Hiding and Soloing 4 | description: The secret menu to GitKraken Client. Learn more about the Command bar, Command Palette, and general tips for working faster. Learn GitKraken Client's Advanced Interface! 5 | 6 | --- 7 | 8 | The left panel allows you to modify the view of the graph for cleanliness and focus. 9 | *** 10 | 11 | 12 | 13 | 14 |
15 |
16 |
17 |

Hide

18 |

Hides the selected branch from the graph.

19 | 20 |

To hide a branch, mouse over that branch, and you will see the eye icon appear to the left of the branch name; click this to hide. 21 | 22 | Or perform this task by right-clicking the branch and selecting `Hide`.

23 |

Hidden branches will now have a gray eye icon. Clicking this will restore that repo to the graph.

24 |
25 |
26 |
27 |

Solo

28 |

Soloing a branch will hide all other branches which have not been soloed, showing only soloed branches.

29 |

To solo a branch, right-click the branch and select `Solo`. This initiates Solo Mode, with soloed branches highlighted in orange and with a solid orange icon to the left of the branch name.

30 |

Solo/unsolo additional branches by clicking on the semi-opaque icon to the left of that branch's name.

31 |

Consider hiding/soloing entire remotes if you only need about two remotes, and then hiding everything else.

32 |
33 |
34 | -------------------------------------------------------------------------------- /docs/working-with-commits/search.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Searching Commits 4 | description: Learn how to search for commits in GitKraken Client. 5 | 6 | --- 7 | 8 | Learn how to search for commits in GitKraken Client. 9 | 10 | *** 11 | ## Max commits 12 | 13 | By default, GitKraken Client displays up to 2000 commits on the graph. To view a deeper history of your repo, set the max number of commits that display on the graph to the number of your liking. 14 | 15 | Navigate to Preferences from the hamburger menu in the upper right corner, and find Max Commits in Graph under General. There is no limit to how many commits can be displayed. 16 | 17 | 18 | 19 | You'll also find option to Show All Commits in Graph for those behemoth projects of yours. 20 | 21 | ## Search bar 22 | 23 | The search bar in the upper right of the application defaults to search for commits. 24 | 25 | 26 | 27 | Search commits by message, SHA, or author and watch GitKraken Client update the results live. 28 | 29 | Iterating through the search results will take you to the commit in the graph. Consider using the Command Palette to search commits at any time too! 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |
 MacWindows/Linux
Toggle Command PalettePCtrlP
48 | -------------------------------------------------------------------------------- /docs/working-with-repositories/favorites.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Favorite Repos 4 | description: Quickly access your favorite repos from the repo list, drop-down menu, or shortcut keys. 5 | 6 | --- 7 | 8 | Quickly access your favorite repos using the drop-down menu or shortcut keys. 9 | 10 | *** 11 | ## Adding favorites 12 | 13 | Navigate to File Open to access the list of recently opened repositories. 14 | 15 | On hover, click the heart on the repo you wish to favorite. 16 | 17 | 18 | 19 | Once added, favorites will appear at the top of the drop-down menu in the main application. You can also right-click on any repo to favorite or unfavorite from here. 20 | 21 | 22 | 23 | ## Shortcut Keys 24 | 25 | Once you have a repository favorited, you can quickly swap to it using the assigned keyboard shortcut. Up to 9 repositories can be assigned to the 1-9 keys: 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 |
 MacWindows/Linux
Swap to Favorite Repo #1control1Ctrlalt1
Swap to Favorite Repo #2control2Ctrlalt2
Swap to Favorite Repo #1-9control#1-9Ctrlalt#1-9
-------------------------------------------------------------------------------- /docs/working-with-files/adding-and-removing.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Adding and Removing 4 | description: Learn how to add and remove files in GitKraken Client. 5 | 6 | --- 7 | 8 | *** 9 | 10 | ## Adding a file 11 | 12 | Add a file to GitKraken Client using the Command Palette. 13 | 14 | To initiate the Command Palette, hit Ctrl/Cmd + P, type `Create File`, and hit Enter. 15 | 16 | You can also right click the empty space in the commit panel and click the `Create File` context menu option. 17 | 18 | 19 | 20 | Type the desired filename and hit Enter. 21 | 22 | 23 | 24 | Folders can be created while creating a file by including a "/" in the file name. 25 | 26 | 27 | 28 | ## Removing a file 29 | 30 | Delete a file from a previous commit by right clicking that file in the commit panel and selecting the `Delete file` context menu option. 31 | 32 | 33 | 34 | Delete any file in the repo by ticking the `View all files` option, right clicking the file, and selecting the `Delete file` context menu option. 35 | 36 | 37 | 38 | ## Filter files 39 | 40 | If you tick the `View all files` option, you'll gain access to the Filter Files bar. Use this to quickly jump to a specific file or to filter by a file type. 41 | 42 | -------------------------------------------------------------------------------- /docs/git-workflows-and-extensions/github-actions.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: GitHub Actions 4 | description: GitHub Actions help you to automate your workflow 5 | 6 | --- 7 | 8 | 9 | GitHub Actions is a service provided by Github, which can help automate your workflow. More specifically, it allows you to add/edit/delete _workflows_, which are files stored in `.github/workflows` as part of the GitHub Actions feature. 10 | 11 |
12 | 13 |
14 | 15 |
16 |

Because this is a GitHub Beta Feature, you will need to register for the GitHub Actions beta on your GitHub account .

17 |
18 | 19 | *** 20 | 21 | ###Create Workflow 22 | 23 | GitKraken Client will allow you to create new workflows from the left panel. 24 | 25 | 26 | 27 | Hovering over `GitHub Actions` and clicking the button will open the `Create Workflow` panel. From here you can select from availible workflow templates or create a blank workflow. Workflows will be placed in the `.github/workflows folder` that GitHub uses (it will create the folder if none exists). 28 | 29 |
30 |

Note: the GitHub Actions section will only appear when working in GitHub repositories

31 |
32 | 33 | *** 34 | 35 | ###Edit Workflow 36 | 37 | You can double click any existing workflow to be taken to view the code, make changes, and save. 38 | 39 | 40 | 41 | *** 42 | 43 | ###Delete Workflow 44 | 45 | You can quickly delete workflows by right-clicking on them and selecting `Delete-Workflow`. 46 | 47 | 48 | 49 | *** 50 | 51 | ###GitHub Actions Documentation 52 | 53 | You can find examples and more information on GitHub Actions Documentation page. -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: GitKraken Support 4 | description: Here you'll find answers to FAQs, documentation and tutorials. Please contact the friendly GitKraken Customer Success team if you still need help! 5 | og_image: /img/GitKrakenClient-Hero.png 6 | 7 | --- 8 | 9 | Welcome to the GitKraken support and documentation site! 10 | 11 | 👈 Use the sidebar to browse topics, or use the search bar to find something specific. 12 | 13 | *** 14 | 15 | ## GitKraken Client Tutorial 16 | 17 |
18 | 19 |
20 | 21 |
22 |
23 |

Check out these training resources to get started using GitKraken Client with GitHub, GitLab, Bitbucket or Azure DevOps.

24 |
25 |
26 |
27 |

GitHub

28 |
29 |
30 |
31 |

GitLab

32 |
33 | 37 |
38 |
39 |

Azure DevOps (VSTS)

40 |
41 |
42 |
43 |
44 | 45 | 46 | 47 | *** 48 | 49 | ## Contact Support 50 | 51 | Didn't find what you're looking for? Then please contact our support team for additional help. 52 | 53 | Contact Support 54 | 55 | *** 56 | 57 | ## Make a Feature Request 58 | 59 | Have an idea or feedback for improving GitKraken? Upvote existing user suggestions ⬆️ or add your idea 📝. 60 | 61 | Suggest Features 62 | 63 | 64 | -------------------------------------------------------------------------------- /docs/start-here/command-palette.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Command Palette 4 | description: The _Command Palette_ is a faster way to access GitKraken Client's actions. 5 | 6 | --- 7 | 8 | The _Command Palette_ is a faster way to access GitKraken Client's actions. 9 | 10 | *** 11 | 12 | Use the _Command Palette_ to open repositories, history for files in the current repository, and settings. 13 | 14 | 15 | 16 | 17 | 18 | ## Open Command Palette 19 | * Use the keyboard shortcut P or CtrlP and begin typing. 20 | * Click the magic wand icon in the top right of the toolbar. 21 | * Navigate to the help menu Open Command Palette. 22 | 23 | ## Supported Commands: 24 | 25 | ### Repo 26 | * `Close Tab` 27 | * `Open Repo` 28 | * `Open in file manager` 29 | * `Open in External Editor` 30 | * `Open in External Diff/Merge Tool` 31 | * `Open in terminal` 32 | * `Repo Management: Clone` 33 | * `Repo Management: Init` 34 | * `Repo Management: Open` 35 | 36 | ### Settings 37 | * `Configure Git Flow` 38 | * `Configure LFS` 39 | * `Configure GPG Signing` 40 | * `Initialize LFS on this repo` 41 | * `Join the Light side` || `Join the Dark side` 42 | * `Manage Account` 43 | * `Settings` 44 | * `Switch to Profile` + `profile name` 45 | 46 | ### View 47 | * `Decrease Zoom` 48 | * `Increase Zoom` 49 | * `Keyboard Shortcuts` 50 | * `Open a new Terminal Tab` 51 | * `Reset Zoom` 52 | * `Toggle Left Panel` 53 | * `Toggle Commit Detail Panel` 54 | * `Toggle Syntax Highlighting` 55 | * `Toggle Theme` 56 | 57 | ### History 58 | * `Blame` + `filename` 59 | * `History` + `filename` 60 | * `Search Commits` + `message`/`sha`/`author` 61 | 62 | ### Core 63 | * `Redo` 64 | * `Undo` 65 | 66 | ### File 67 | * `Create File` + `filename` 68 | * `Delete File` + `filename` 69 | * `Open File` + `filename` 70 | * `View File` + `filename` 71 | * `Edit File` + `filename` 72 | * `Discard all changes` 73 | * `Stage all changes` 74 | * `Unstage all changes` 75 | 76 | ### Stash 77 | * `Stash: Apply` 78 | * `Stash: Create` 79 | * `Stash: Pop` 80 | 81 | ### Branch 82 | * `Create Branch` 83 | * `Create Tag` 84 | * `Create Annotated Tag` 85 | * `Fetch All` 86 | * `Pull` 87 | * `Push` 88 | * `Rename Branch` 89 | * `Start Pull Request` 90 | * `View Working Directory Changes` 91 | 92 | ### Checkout 93 | * `Checkout` + `{branch name}` 94 | 95 | ### Logs 96 | * `Activity logs` 97 | * `View Error Logs` 98 | * `View Performance Logs` 99 | * `View Release Notes` 100 | -------------------------------------------------------------------------------- /docs/working-with-repositories/fork.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Forking GitHub Repos 4 | description: Fork your GitHub Repos using GitKraken Client. 5 | 6 | --- 7 | 8 | If you are using the [GitHub integration](/integrations/github/) or the [GitHub Enterprise integration](/integrations/github-enterprise/), then you may fork repos right from GitKraken Client. 9 | 10 |
11 |

Note: The fork feature is only available through the GitHub Integration.

12 |
13 | 14 | *** 15 | ## Forking a repo 16 | To add a new fork, first [open a repository](/working-with-repositories/open-clone-init/#opening-an-existing-project) in GitKraken Client. 17 | 18 | Then click the icon when hovering over Remote in the left panel and click on the GitHub.com or the GitHub Enterprise tab. 19 | 20 | 21 | 22 | If GitKraken Client does not detect an existing fork of this repo, the app will present the option to fork the repo and then add it as a remote. 23 | 24 | 25 | 26 | Click to fork the repo on GitHub, and then add it as remote in GitKraken Client's left panel: 27 | 28 | 29 | 30 | ## Add an existing fork 31 | 32 | Click the icon when hovering over Remote in the left panel and click on the GitHub.com or the GitHub Enterprise tab. 33 | 34 | GitKraken Client will detect whether a fork exists, but has yet to be added as a remote in the app. Click to add the fork as remote. 35 | 36 | 37 | 38 | And remember, you can always [add a remote](/working-with-repositories/pushing-and-pulling/#adding-remotes) for any repo that is reachable over HTTPS or SSH. 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /docs/working-with-commits/squash.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Squash 4 | description: Squash commits to clean up your graph! 5 | 6 | --- 7 | 8 |
9 | 10 |
11 | 12 | *** 13 | 14 | Squashing is available for commits that meet the following requirements: 15 | 16 | * Selection contains more than one commit 17 | * Genealogically consecutive 18 | * Chronologically consecutive 19 | * The oldest commit in the list has a parent 20 | 21 | If all these conditions are met, the Squash option appears when you right click the commit node. 22 | 23 | 24 | 25 | Clicking the squashed commit will display the commit message in the right panel. You can click on the commit message to amend it and consolidate all of the commit messages from your squashed commits. 26 | 27 | 28 | 29 | ### Pushing a squashed commit 30 | 31 | In general, you should not push commits to your remote that you intend to squash, but what happens if you have already pushed them and you squash locally? Your local branch has the squashed commit, but your remote branch still has all of the commits. 32 | 33 | 34 | 35 | When you push to your remote, you will receive a warning that your current branch is behind the remote branch. This is expected, because the HEAD of your current branch is no longer a descendent of the remote branch's HEAD. 36 | 37 | 38 | 39 | In this instance, a will allow you to push the squashed commit to your remote and retain the clean history of your local branch. 40 | 41 | 42 | 43 | You will see a warning letting you know that is a destructive action, but this is expected because we have rewritten our branch's history by squashing commits. 44 | -------------------------------------------------------------------------------- /docs/working-with-commits/stashing.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Stash 4 | description: Save your changes for later with stashing in GitKraken Client. 5 | 6 | --- 7 | 8 | Let's talk about how to save your changes for later with stashing. 9 | 10 | *** 11 | 12 | 13 | 14 | ## Stashing files 15 | 16 | Stash your changes by hitting the **Stash** icon in the top toolbar. 17 | 18 | 19 | 20 | Your stash will appear on the graph. If you right click on the stash, you will be given the option to: 21 | 22 | * **Apply Stash**: Applies the changes to your WIP and retains stash for reusability 23 | * **Pop Stash**: Applies the changes to your WIP and then deletes your stash 24 | * **Delete Stash**: Annihilates a stash 25 | * **Hide**: Hides the selected stash from the commit graph 26 | * **Hide all stashes**: Hides all stashes from the commit graph 27 | * **Show all stashes**: Shows all stashes on the commit graph 28 | 29 | 30 | 31 | If you only need to pop your stash, then use the Pop Stash button in the upper toolbar: 32 | 33 | 34 | 35 | 36 | 37 | ### Stashing from the left panel 38 | 39 | Your stashes will be available from the left panel for review. The same options to Apply, Pop, Delete, Hide, Hide all, or Show all are present too: 40 | 41 | 42 | 43 | This is helpful for those times you cannot find your stash on the graph. 44 | 45 | 46 | 47 | ### Naming a stash 48 | 49 | To name your stash, type the desired name in the `// WIP` field at the top of the graph. 50 | 51 | 52 | 53 | The stash will now appear in the left panel and the graph with the desired name. 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /docs/working-with-repositories/interactive-rebase.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Interactive Rebase 4 | description: Learn about interactive rebase in GitKraken Client. 5 | 6 | --- 7 | 8 | Learn how to rewrite your commit history with interactive rebase in GitKraken Client. 9 | 10 | *** 11 | 12 | ## Initiating Interactive Rebase 13 | To initiate interactive rebase, drag and drop one branch onto another branch or right-click the target branch and select Interactive Rebase. 14 | 15 | 16 | 17 | Right-click on any parent commit to see the interactive rebase option. However, please note that interactive rebase is not available for merge commits. 18 | 19 | ### Interactive rebase limits 20 | 21 | The drag and drop option will only show the interactive rebase option if: 22 | 23 | - No merge commits are present on the branch you’re rebasing 24 | - The 2 branches share a common ancestor 25 | - Neither branch has the repo’s initial commit 26 | - You are not attempting to rebase a parent branch onto a child (like master into a feature branch) 27 | 28 |
29 |

Note: If you start the interactive rebase with GitKraken Client you must finish the rebase with GitKraken Client.

30 |
31 | 32 | --- 33 | 34 | ## Commit Actions 35 | 36 | ### Pick 37 | Pick takes the commits from one branch and places them onto the last commit of another branch. 38 | 39 | 40 | 41 | ### Reword 42 | When selecting reword you will see the Reword commit message modal open. Here you can edit the summary and description of your commit. 43 | 44 | 45 | 46 | ### Squash 47 | When you squash you are taking the child commit and in turn writing that commit to the parent commit. In order for squash to be an option there will have to be a parent child relationship. 48 | 49 | 50 | 51 | ### Drop commit 52 | Drop removes the commit from the branch, completes rebase and rewrites the commit graph. 53 | 54 | 55 | 56 | --- 57 | 58 | ### Keyboard Shortcuts and Reset 59 | Use keyboard shortcuts Pick, Squash, Reword and Drop to perform commit actions. If you wish to start over, click . 60 | 61 | -------------------------------------------------------------------------------- /docs/working-with-repositories/tags.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Tags 4 | description: Designating important points of the Git history. Creating Tags in GitKraken Client on commits is easy with the graph. 5 | 6 | --- 7 | 8 | Tags are pointers to a commit. Some examples of these are for marking versions of your product or important changes. 9 | 10 | *** 11 | ### Adding tags 12 | 13 | To create a new tag in GitKraken Client, right click on the commit you'd like to tag, and select Create tag here at the bottom. 14 | 15 | 16 | 17 | 18 | Tags are created locally, but available for remotes by right clicking the tag and selecting to push the tag to the remote. 19 | 20 | 21 | 22 | Double click a tag in the left panel to jump to when the tag was added. Tags can also be hidden and soloed just like branches from the right click menu. 23 | 24 | 25 | 26 | *** 27 | 28 | ### Checkout a tag 29 | 30 | While you cannot directly checkout a tag, right-click on a tag and choose the Create branch here to create and then immediately checkout the commit tied with the tag. 31 | 32 | 33 | 34 | Alternatively, consider using the [detached HEAD state](/working-with-commits/detached-head-state/) to checkout the commit directly. 35 | 36 | *** 37 | 38 | ### Moving tags 39 | To move a tag to the branch HEAD, checkout the new branch, right click the tag, and select fast-forward. 40 | 41 | If a tag cannot be fast-forwarded, you can delete and then add a new one. Be sure to delete the tag on remote as well. 42 | 43 | *** 44 | 45 | ### Tag messages 46 | Create annotated tags by right clicking a branch or commit and selecting Create annotated tag here. You can annotate an existing tag by right clicking the tag and selecting Annotate tag. This message will be displayed when hovering over the tag in the left panel, or in the graph. 47 | 48 | 49 | 50 | ### Search or filter tags 51 | 52 | You may filter tags from the filter bar in the left panel. Use this to quickly find a tag. 53 | 54 | -------------------------------------------------------------------------------- /docs/working-with-repositories/team-view.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Team View 4 | description: Working with the Team View in GitKraken Client. 5 | 6 | --- 7 | 8 | The Team View allows you to see what branches and files members of your organization are currently working on. This is helpful for avoiding and collaborating on merge conflicts. 9 | 10 |
11 |

Note: Team View is only available for users in an organization. See the Teams page for more information on managing teams.

12 |
13 | 14 | *** 15 | 16 | ### Team View 17 | 18 | You may select any team you are a part of in the Team dropdown. Additionally, from Preferences > Team you have the option to select the team for the repository as well as _Use this as the default for all repositories_. 19 | 20 | For each team member you can see the branch they currently have checked out and the files that they currently have local, uncommitted changes in. Branches are indicated below in white and files are indicated below in blue. 21 | 22 | 23 | 24 | Additional lines to their files will be shown in green and lines removed will be shown in red. When you have local, uncommitted changes in the same file as another team member, there will be a icon on that file indicating there can be potential conflicts. 25 | 26 | 27 | 28 | Learn more about [how to create a team](https://support.gitkraken.com/start-here/teams/). 29 | 30 | *** 31 | 32 | ### Status 33 | 34 | The **status** will display on the avatars of members in your GitKraken Organization or Team, indicating if they are actively using GitKraken Client. This activity status icon is visible in the Team View section in the Left Panel, or in the Organization view in Preferences. 35 | 36 | 37 | 38 | Users can manually set their **status** to “Active” or “Away” by selecting the circle icon in the top right corner, or by opening the Profile/Account dropdown menu. 39 | 40 | 41 | 42 | 43 | 44 | 45 | *** 46 | 47 | ### Opt Out 48 | 49 | You may opt out of team sharing by toggling _Share work-in-progress status with my team_ under Preferences > General . 50 | 51 | -------------------------------------------------------------------------------- /docs/working-with-repositories/submodules.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Submodules 4 | description: Submodules allow you to include other Git repositories within another Git repository. Work with submodules in GitKraken Client. 5 | 6 | --- 7 | 8 | Submodules allow you to include other Git repositories within a Git repository and can be managed directly inside of GitKraken Client. 9 | 10 |
11 | 12 |
13 | 14 | *** 15 | ## Adding submodules 16 | Add a submodule by clicking the when hovering over Submodules in the left panel. Paste the HTTPS or SSH link to the repository, and then enter the path. 17 | 18 | 19 | 20 | Adding a submodule to the repository adds a link to the submodule's repository in the .gitmodules file. 21 | 22 | When the parent repository is cloned, it includes the reference to any submodules and the submodules require initialization. 23 | 24 | Your repository tracks the submodule's checked out commit. If there are any updates to the submodule, the files will not automatically update your working directory. 25 | 26 | ### Updating submodules 27 | 28 | To update submodules, navigate to the Submodule pane in the left panel and right click on the submodule. 29 | 30 | 31 | 32 | If you clone a repository that contains a submodule, you will be prompted to initialize the submodule. This will clone the submodule's repository and check out the referenced commit. 33 | 34 | ### Changing pointer commit 35 | To change the pointer commit, open the submodule in GitKraken Client and then check out the new commit. You may need to first create a branch on the target commit before you can check it out. 36 | 37 | Then when you exit the submodule, GitKraken Client will detect the change and ask you if you wish to save the change. 38 | 39 | 40 | 41 | 42 | 43 | ### Statuses 44 | Below are possible statuses of your submodules and their remedies: 45 | 46 | - _Out of sync_ -- The checked out commit of the submodule has changed. There is a change to the submodule reference in your work in progress that should be stashed, committed or discarded. 47 | 48 | - _Added but not initialized_ -- Right click and select initialize. 49 | - _Added and initialized but not committed_ -- When adding a submodule, commit the submodule folder to the repository and insert the reference to the submodule in the .gitmodules file. 50 | 51 | ### GitKraken Client and subtree, not submodules 52 | GitKraken Client does not currently support subtree in-app. 53 | -------------------------------------------------------------------------------- /docs/working-with-commits/detached-head-state.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Detached HEAD state 4 | description: Learn how to enter detached HEAD state to interact with commits without impact to other branches 5 | 6 | --- 7 | 8 | Git power-users of GitKraken Client: rejoice! Entering detached HEAD state is just a right click away. 9 | 10 | *** 11 | Detached HEAD state gives you the power to check out any commit and explore the older state of a repository without having to create a local branch. 12 | 13 | ### Entering detached HEAD state 14 | 15 | Right click on the commit you’d like to checkout, and navigate to Checkout this commit. 16 | 17 | 18 | 19 | The checked out commit will be tagged as `HEAD`, serving as your indication that you’ve entered detached HEAD state. 20 | 21 | 22 | 23 | You now have access to the full history of the commit. 24 | 25 | ### Leaving detached HEAD state 26 | 27 | Feel free to stay a while; you can look around, make some experimental changes and commit them, all without impacting other branches. The commits you make in this state are “detached” from the rest of your project’s development - so when you’re ready to discard the commits you’ve made in this state, simply checkout a branch. 28 | 29 | When you check out a branch, the `HEAD` tag indicator will disappear and your repo will be business as usual. 30 | 31 | 32 | 33 |
34 |

IMPORTANT: Any commits made in detached HEAD state will be lost when you check out any branch. 35 |

36 |
37 | 38 | Luckily, GitKraken Client will explicitly remind you of your detached state when you make a commit. You'll find this warning in at the top of the commit panel. 39 | 40 | 41 | 42 | ### Keeping your commits 43 | 44 | If you hit that stride and create changes in the detached HEAD state that you’d ultimately like to keep, you can easily do so by right clicking on your checked out commit and selecting Create branch here. 45 | 46 | 47 | 48 | ### Recovering lost commits 49 | 50 | If you unintentionally checkout another branch, you can [Undo](https://support.gitkraken.com/working-with-commits/undo-and-redo/) to recover the commit. If you are unable to undo the change, these commits will still be tracked in the repository. Using the CLI, you can use [git reflog](https://git-scm.com/docs/git-reflog) to find the SHA of the missing commit and [git checkout ](https://git-scm.com/docs/git-checkout) to checkout that commit. -------------------------------------------------------------------------------- /docs/git-workflows-and-extensions/lfs-faqs.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Git LFS FAQ 4 | description: Frequently asked questions related to LFS. 5 | 6 | --- 7 | *** 8 | 9 | ## LFS Features & interface 10 | 11 | ### I updated to v3.0.0 of GitKraken Client but I cannot find LFS anywhere? 12 | 13 | You will need to make sure you have Git v1.8.5 and LFS v2.0.0 installed on your local machine. 14 | 15 | 16 | ### I switched repos and now I do not see the LFS BETA button. Where did it go? 17 | 18 | It is most likely that you have switched to a repository that does not have LFS initialized. If you wish to initialize this repo with LFS, you can do so by navigating to the hamburger menu → LFS → Initialize LFS on this repo. 19 | 20 | ### I added a LFS tracking pattern in GitKraken Client but files with that pattern are not being tracked by LFS, what gives? 21 | 22 | Only new files will be tracked by the newly added pattern. If files of the newly added pattern are already being tracked by Git, you will need to untrack them and then re-track them. 23 | 24 | The easiest way to do this in GitKraken Client is to remove the files from the repository (Git will think they have been removed/deleted), commit, then re-add the files and re-commit. The re-added files should now follow your new tracking pattern. 25 | 26 | ### After trying to push my files, I see a prompt requiring my credentials. What credentials is it referring to? 27 | 28 | This prompt occurs if your LFS server credentials are not cached. If you are using the same remote hosting service (such as GitHub), then enter the hosting service credentials. 29 | 30 | If you are using an internal LFS server (or another LFS service), you will need to enter the credentials for the LFS server. 31 | 32 | ## Common Pitfalls 33 | 34 | ### Why is LFS STILL not showing up? 35 | 36 | If LFS is still not appearing as an option in GitKraken Client preferences menu, you may need to add it to your `Path` variable. This can happen if git or git LFS is not installed in the default directory. You should [Verify Git and LFS Versions](/git-workflows-and-extensions/intro-and-requirements/#verify-git-and-lfs-versions). 37 | 38 | ### SSH Keys in GitKraken Client and the CLI 39 | Unlike most features in GitKraken Client, the LFS feature does require git for the CLI as well as LFS. This means that if you are trying to use SSH, your key will need to be configured in your GitKraken Client and for the CLI. 40 | 41 | You can automatically generate an SSH Key in GitKraken Client in **Preferences -> Authentication -> General** and save wherever you want locally, or the key will be in your `.gitkraken\profiles` folder if you generate from a specific integration. 42 | 43 | You can also use the SSH Agent option to setup and manage your keys, and then tell GitKraken Client to use your agent. [Adding an SSH Key to an SSH Agent](https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/) by GitHub 44 | 45 | ### Using LFS installed using Homebrew on macOS 46 | 47 | If LFS was installed using Homebrew, it may not appear in your path. You can run `sudo launchctl config user path "/usr/local/bin:$PATH"` to add homebrew utilities to the PATH for GUI apps. You can see more information on this from the [Homebrew documentation](https://docs.brew.sh/FAQ#my-mac-apps-dont-find-usrlocalbin-utilities). 48 | 49 | ### Can't find your question here? 50 | 51 | [Contact us](https://www.gitkraken.com/contact) and ask away -------------------------------------------------------------------------------- /docs/git-workflows-and-extensions/git-lfs.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Initialize and Configure Git LFS 4 | description: Learn how to initialize and configure Git LFS within GitKraken Client. 5 | 6 | --- 7 | 8 | Once you meet the [System Requirements](/git-workflows-and-extensions/intro-and-requirements/#git-lfs-requirements 9 | ), initialize LFS on an existing repo or create a repo and initialize LFS from the start. 10 | 11 | *** 12 | 13 | 14 | 15 | ## Initializing LFS on an existing repo 16 | 17 | Navigate to your Preferences and you should see the LFS tab in the left panel: 18 | 19 | 20 | 21 |
22 |

Note: If you do not see the LFS tab, make sure you have a GitKraken Client v3.0.0+ installed and you meet these System Requirements.

23 |
24 | 25 | Click to initialize LFS on the repo: 26 | 27 | 28 | 29 | Exit preferences to access two new things: an LFS button in the toolbar and an unstaged change to the `.gitattributes` file that needs to be committed. 30 | 31 | 32 | 33 | Stage and commit the changes to the `.gitattributes` file to finish the LFS initialization. 34 | 35 | Existing files need to be untracked from Git and re-tracked to count as LFS files. Consider removing the files from the repository (Git will think they have been removed/deleted), commit, then re-add the files and re-commit. 36 | 37 | The re-added files should now follow your new LFS tracking pattern. 38 | 39 | ## Initializing LFS on a new repo 40 | 41 | When you initialize a new repository, you will have the option to _Initialize with LFS_. 42 | 43 | 44 | 45 | ## Configuring LFS 46 | 47 | Once LFS is initialized on a repository, add tracking patterns to the `.gitattributes` file. These tracking patterns will tell LFS which files to monitor in your repository. 48 | 49 | 50 | 51 | Access the `.gitattributes` file by going to Preferences LFS or by editing the `.gitattributes` file directly in your text editor. 52 | 53 | As another option, add tracking patterns to the repository’s `.gitattributes` file through the Unstage pane in the right panel. 54 | 55 | Select the WIP node, right click the file you wish to be tracked by LFS, and select the desired option under LFS. 56 | 57 | 58 | 59 |
60 |

Note: GitKraken Client will automatically perform an LFS pull after cloning a repo or initializing a submodule with LFS

61 |
-------------------------------------------------------------------------------- /docs/working-with-files/editing-files.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Editing 4 | description: Learn how to edit files in GitKraken Client. 5 | 6 | --- 7 | 8 | *** 9 | 10 | ## Editing a file 11 | 12 | If you just [created a new file](/working-with-files/adding-and-removing#adding-a-file) in GitKraken Client, then you will automatically be placed into edit mode, so you can start coding right away. 13 | 14 | There are several ways to edit an existing file: 15 | * Right click the file from a previous commit or when `View all files` is enabled and select `Edit file`. 16 | 17 | 18 | 19 | * Use the Edit File subcommand in the Command Palette. 20 | Hit Ctrl/Cmd + P, type `Edit File`, hit Enter, type the name of the file, and hit Enter. 21 | 22 | 23 | 24 | * Click the from Diff/File View. 25 | 26 |
27 |

**Note:** If viewing a file on a different branch, the button will say and clicking the button will take you to edit mode of the version of that file from your current branch.

28 |
29 | 30 | 31 | The `editable` tag in the upper right corner, denotes that you can edit the current file. 32 | 33 | 34 | 35 | IntelliSense suggestions are shown based on the extension of the file. 36 | 37 | 38 | 39 | ### Saving edits 40 | 41 | The blue dot in the upper right corner indicates unsaved changes. 42 | 43 | 44 | 45 | To save your changes, hit Ctrl/Cmd + S 46 | 47 | To exit the file without saving your changes, hover over the blue dot, click the `X`, and select `Don't Save`. 48 | 49 | 50 | 51 | ### Staging edits 52 | 53 | Clicking the button with pending changes will give you the options to `Save and stage` or `Stage saved changes only`. 54 | 55 | -------------------------------------------------------------------------------- /docs/start-here/themes.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Themes 4 | description: Using and creating themes in GitKraken Client. 5 | 6 | --- 7 | 8 | # GitKraken Client Themes 9 | 10 | *** 11 | 12 | ## Built-in Themes 13 | 14 | You can set your GitKraken Client theme by navigating to Preferences UI Customization menu. 15 | 16 | This can also be done quickly from the [Command Palette](/start-here/command-palette/) (shortcut P or CtrlP), typing `switch theme`, and then the name of the theme. 17 | 18 | 19 | 20 | ### Sync with System 21 | 22 | If your system is capabale of it, you can set GitKraken Client to match your operating system's current theme. This can be done from the Preferences UI Customization menu or the [Command Palette](/start-here/command-palette/). 23 | 24 | *** 25 | 26 | ## Custom Themes 27 | 28 | In addition to the default themes, GitKraken Client supports custom user-defined themes. Each of the .jsonc-default theme files you see in this folder can act as a template "base" for your new custom theme. 29 | 30 | ### Making Your Own Theme 31 | 32 | To make your own custom theme, follow these steps: 33 | 34 | 1. Make a copy of one of the default theme files you'd like to base your custom theme off of in this folder. 35 | 36 | 2. Rename your copied file to be `MyCustomTheme.jsonc` (i.e. drop the `-default` from the extension and give it a unique name). 37 | 38 | 3. Open your new theme file in a text editor. 39 | 40 | 4. Change the `meta.name` property of your theme file to be something unique (a good idea would be to match the file name). The `name` will be used as the display for the option under `Preferences > UI Customization > Theme` in `GitKraken`, so make it something you'll recognize. The scheme must be "light" or "dark", and will be used for default colors if anything is missing. If new properties are added in future releases, your theme will continue to work as-is, by using the scheme to choose a default color for the missing properties. 41 | 42 | 5. Back in `GitKraken`, find your new custom theme under `Preferences > UI Customization > Theme` and select it. 43 | 44 | 6. Edit the color values for any of the props under `themeValues`. 45 | 46 | 47 |
48 |

Note: Themes are hot-loaded. That means that as you save color edits to your theme files, you will see the the changes take effect immediately. If at any point your theme file contains an error after you've saved (bad JSON, improper function, improper value), GitKraken will revert to the default `DARK` theme. This is a safety precaution. 49 |

50 |
51 | 52 | ### Supported CSS/LESS Functions 53 | 54 | #### Supported CSS Functions 55 | 56 | - calc 57 | - hsl 58 | - hsla 59 | - max 60 | - min 61 | - rgb 62 | - rgba 63 | - var 64 | 65 | See [CSS functions](https://www.w3schools.com/cssref/css_functions.asp) for more details. 66 | 67 | #### Supported LESS Functions 68 | 69 | - darken 70 | - desaturate 71 | - fade 72 | - lighten 73 | - mix 74 | - mixLess 75 | - saturate 76 | 77 | See [LESS functions](https://lesscss.org/functions) for more details. -------------------------------------------------------------------------------- /docs/start-here/teams.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Teams 4 | description: Working with Teams in GitKraken Client. 5 | 6 | --- 7 | 8 | GitKraken Client users with Pro and Enterprise Cloud accounts can use Teams to group users within an Organization. 9 | 10 | Teams offer the ability to see what branches and files members of your organization are currently working on using the Team View. 11 | 12 |
13 |

Note: Pro accounts are limited to 1 Team. Upgrade to GitKraken Enterprise to create and manage more than 1 Team. 14 |

15 | 16 | *** 17 | 18 | ### Managing an Organization 19 | 20 | To manage the Team Members in your Organization, navigate to Preferences and select your Organization name. 21 | 22 | 23 | 24 | Under the Members section you may s to your Organization and use the search bar to search for members by name, username, or email. 25 | 26 | You may edit a users role or remove the user from the Organization by selecting the on the user. 27 | 28 | 29 | 30 | If you do not have extra licenses while inviting a member, you will be prompted to purchase an additional license. 31 | 32 | 33 | 34 | *** 35 | 36 | ### Managing a Team 37 | 38 | You may create a Team from the icon. 39 | 40 | 41 | 42 |
43 |

Pro accounts are limited to 1 Team. Upgrade to GitKraken Enterprise to create and manage more than 1 Team.

44 |
45 | 46 | You may delete a Team by selecting the Team and selecting the icon. 47 | 48 | 49 | 50 | 51 | You may rename a Team by double clicking the Team name. 52 | 53 | 54 | 55 | 56 | #### Managing Users in a Team 57 | 58 | To add a user to a Team, select the Team and then select . Users can be removed from a Team by selecting the on the user. 59 | 60 | *** 61 | 62 | ### Suggested Members 63 | 64 | GitKraken Client will suggest users that contribute to the current repository that are not in your Organization. You may the member to your Organization to help future collaboration. 65 | 66 | -------------------------------------------------------------------------------- /docs/how-to-install.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: How to Install GitKraken Client 4 | description: No Git tools are required for GitKraken Client, so once you’ve run the installer, you can open the app and get going. 5 | 6 | --- 7 | 8 | There are three steps to success with GitKraken Client. That's it! 9 | 10 | 1. [Download](https://gitkraken.com/download) GitKraken Client 11 | 2. Install GitKraken Client 12 | 3. Use GitKraken Client 13 | 14 | No Git tools are required for GitKraken Client, so once you’ve run the installer, you can open the app and get going. 15 | 16 | It works directly with your repositories with no dependencies—you don’t even need to have Git installed on your system. GitKraken Client is built with NodeGit, a Git framework that is primarily developed and maintained by members of the GitKraken development team. 17 | 18 | Below are platform-specific details on minimum requirements. 19 | 20 |
21 |

Looking for GitKraken Enterprise installation instructions? Then please start in with our Enterprise System Requirements page.

22 |
23 | 24 | *** 25 | ## Windows (.exe file) 26 | * **System requirements:** Windows 10 27 | * [Download (64-bit)](https://gitkraken.com/download/windows64) 28 | * [Download (32-bit)](https://gitkraken.com/download/windows) 29 | 30 | ### Install Instructions 31 | Double-click the downloaded executable file, and follow the installation instructions. 32 | 33 | ### Data Location 34 | GitKraken Client data is stored with your home profile in `C:\Users\{user}\AppData\Roaming` in the `.gitkraken` folder. 35 | 36 | *** 37 | ## Mac OS (.dmg file) 38 | * **System requirements:** Mac OS X 10.11+ 39 | * [Download](https://gitkraken.com/download/mac) 40 | 41 | ### Install Instructions 42 | Double click the downloaded DMG file and when prompted, drag and drop the GitKraken icon to your Applications folder. 43 | 44 | 45 | 46 | ### Data Location 47 | GitKraken Client data is stored in `/Users/{user}/.gitkraken` == `~/.gitkraken`. 48 | 49 | *** 50 | ## Linux (.deb, .rpm, and .tar.gz files) 51 | * **.deb system requirements:** Ubuntu 18.04 LTS or later 52 | * **.rpm system requirements:** RHEL 7+, CentOS 7+, or Fedora 34+ 53 | 54 |
55 |

Note 📝 - GitKraken Client currently supports Ubuntu 18.04 LTS+, RHEL 7+, CentOS 7+, and Fedora 34+. While GitKraken Client may be able to be installed on other Linux distributions, we cannot guarantee that it will work as expected.

56 |
57 | 58 | ### .deb 59 | GitKraken Client has a simple package available for Debian based distributions. 60 | ``` 61 | wget https://release.gitkraken.com/linux/gitkraken-amd64.deb 62 | sudo dpkg -i gitkraken-amd64.deb 63 | ``` 64 | Or [download the file](https://gitkraken.com/download/linux-deb). 65 | 66 | ### .tar 67 | ``` 68 | wget https://release.gitkraken.com/linux/gitkraken-amd64.tar.gz 69 | sudo tar -xvzf gitkraken-amd64.tar.gz 70 | ``` 71 | Or [download the file](https://gitkraken.com/download/linux-gzip). 72 | 73 | ### .rpm 74 | ``` 75 | wget https://release.gitkraken.com/linux/gitkraken-amd64.rpm 76 | sudo yum install ./gitkraken-amd64.rpm 77 | ``` 78 | Or [download the file](https://gitkraken.com/download/linux-rpm). 79 | 80 | ### Snap 81 | 82 | Snap is an easy-to-install package for Linux distributions (supported versions above). Get it from the snap store or [Snapcraft.io](https://snapcraft.io/gitkraken). 83 | 84 | ### Data Location 85 | GitKraken Client data is stored in `/home/{user}/.gitkraken` == `~/.gitkraken`. 86 | 87 | ## Run GitKraken Client 88 | 89 | Upon installation, some Linux distros do not automatically create shortcuts to the app. 90 | 91 | To run GitKraken Client manually, open the terminal and type `gitkraken` to start the app. 92 | 93 | -------------------------------------------------------------------------------- /docs/working-with-repositories/activity-logs.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Activity Logs 4 | description: Learn where to find feedback Activity Logs in GitKraken Client. 5 | 6 | --- 7 | 8 | Learn how to view all Git actions made to repositories and all application actions made in GitKraken Client through Activity Logs. 9 | 10 | *** 11 | 12 | ## Activity Logs 13 | 14 | Looking to increase your project scope? 15 | 16 | Pop open the hood of your project and check out the Activity Logs located in the footer toolbar of GitKraken Client. 17 | 18 | Activity Logs provide real time feedback of application and repository-level interactions that occured in GitKraken Client. 19 | 20 | 21 | 22 | Activity Logs files are plain text in a standard log file format. Each line displays time of action, action feedback, and performance data measured in milliseconds. 23 | 24 | 25 | 26 | Activity Logs collate Git actions, outputs information chronologically, and displays activity history indefinitely. 27 | 28 | ### Application Log 29 | 30 | The *Applications* tab in Activity Logs contains messages about actions made in GitKraken Client application. Discover events from your GitKraken Client instance such as: project creation, clearing SSH, setting global gitconfig, etc. 31 | 32 | 33 | 34 | This tab information remains consistent regardless of the repository currently in focus: switching repositories will not alter the Application system log files. 35 | 36 | ### Repository Log 37 | 38 | The *Repository* tab in Activity Logs contains logged messages of Git operations taken while working with your repository. 39 | 40 | Refer to your *Repository* log to increase your project scope as a greater source of truth of your Git activity such as: fetch, push, merge, etc. 41 | 42 | 43 | 44 | *Repository* activity reflects action taken in the repository currently open in focus. 45 | 46 |
47 |

Note: 48 | For more verbose logging, navigate to Preferences > General > Use extended logging in activity log. 49 |

50 |
51 | 52 | Enabling extended logging provides even greater scope into repository-level Git actions, including Auto-fetch feedback. 53 | 54 | 55 | 56 | ### Git Hook Log 57 | 58 | Do you automate your workflow with Git hooks? 59 | 60 | Activity Logs log all hook activity - successes, warnings, failures, errors, etc. 61 | 62 | The *Repository* tab populates a new tab in Activity Logs to provide active insight on feedback of your Git hook activity. View your error log in context to find how an event caused the change for faster troubleshooting. 63 | 64 | 65 | 66 | You can also access a hook log from the snackbox notification that populates near the footer toolbar when an error is thrown. 67 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /docs/git-workflows-and-extensions/git-flow.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Gitflow 4 | description: Gitflow is a list of rules to keep a repo’s history organized, and is used to make the release process, bug fixes, and feature creation easier. 5 | 6 | --- 7 | 8 | Gitflow is a list of rules to keep a repo’s history organized, and is used to make the release process, bug fixes, and feature creation easier. 9 | 10 |
11 | 12 |
13 | 14 | *** 15 | ## Configuration 16 | First initialize Gitflow in Preferences Gitflow and change the default branch names if desired. 17 | 18 | 19 | 20 | Once initialized, two branches will always be present: `master` (The version in production) and `develop` (The version currently in development for the next release). 21 | 22 | Changes are merged into these branches. If you do not currently have these branches in your local repository, GitKraken Client will create them when Gitflow is initialized. 23 | 24 | *** 25 | ## Usage 26 | With Gitflow initialized in your repo, you will get an additional menu in the left panel. Start or finish any of your Gitflow branches here. 27 | 28 | 29 | 30 | Create new Gitflow branches by clicking the green button on the Gitflow menu on the left. 31 | 32 | Or whenever you add a branch, include the prefix for the Gitflow branch type i.e. 33 | `feature/branch-name`. Any branches that do not have the prefix, will be displayed in the local 34 | repository section, but not in the Gitflow menu. 35 | 36 | 37 | 38 |
39 |

Note: Gitflow has the benefit of adding all features, hot-fixes, and release branches in different folders.

40 |
41 | 42 | Gitflow branches can be pushed to a remote which is the same as '_Publishing_' the Gitflow object in the command line. 43 | 44 | ### Feature 45 | Feature branches are used for new features or bug fixes. They typically exist only in local repos and aren't shared with others. 46 | 47 | When finishing a feature branch, GitKraken Client will merge the feature branch into `develop`, and delete the feature branch from the local repository. 48 | 49 | 50 | 51 | You also have the option to rebase the `feature` branch on top of `develop`. 52 | 53 | ### Release 54 | Releases are major and minor versions of your product. They're often shared with other collaborators working on the same version. 55 | 56 | When finishing a release, the release branch is merged into both `master` and `develop` branches. This creates a tag with the release name for future reference. 57 | 58 | 59 | 60 | ### Hotfix 61 | Hotfixes are the same as Releases in Gitflow, except hotfix branches are created on top of `master`, while release branches are created on top of `develop`. 62 | 63 | Hotfixes are for quickly pushing out a change to your production branch. Common examples of hotfixes are fixing typos, and bugs that need to be pushed out as soon as possible to production. 64 | 65 | When finishing a hotfix, GitKraken Client will merge the changes into both `master` and `develop`. 66 | 67 | 68 | -------------------------------------------------------------------------------- /docs/working-with-repositories/terminal.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Terminal Tab 4 | description: A Git-enhanced terminal experience with GitKraken’s powerful visual Git commit graph 5 | 6 | --- 7 | 8 | Open the terminal to use Git CLI commands while still viewing the graph. 9 | 10 | To get started open up a repository and click the terminal button in the toolbar, from the new tab view by clicking New Terminal Tab, or by searching for "terminal" in the command palette. 11 | 12 | 13 | 14 | Open a Terminal: 15 | 16 | * From the "New Terminal Tab" button in a New tab 17 | * With `Ctrl/Cmd + T` when inside a Terminal tab 18 | * From the Command Palette (`Ctrl/Cmd + P`) 19 | 20 | --- 21 | 22 | ## Terminal Commands 23 | 24 | ### Git Commands and Auto-complete 25 | Most Git commands are supported and will appear in the Terminal's auto-complete suggestions, start typing `git` to see them. 26 | 27 | 28 | 29 | Auto-complete suggestions will also appear for flags. 30 | 31 | 32 | 33 |
34 |

Note: Other auto-complete programs can cause GitKraken CLI's auto-complete suggestions to not work. You may need to uninstall or disable these programs before using the Terminal.

35 |
36 | 37 | ### GK Commands 38 | You can access GitKraken CLI specific commands by typing `gk`. 39 | 40 | 41 | 42 | As well as suggestions for additional parameters. 43 | 44 | 45 | 46 | Different views can be accessed using the `gk` CLI program: 47 | 48 | * `gk panel`: toggles the visualization panel. Also has parameters to reposition the panel top/bottom/left/right. 49 | * `gk graph`: shows the graph view. Same behavior as the `gk panel`, but additionally it will return to the graph if you're in a different view, and has subcommands for toggling the graph columns with the keyboard. 50 | * `gk history` and `gk blame`: opens the history/blame panel for a specific file. 51 | * `gk diff`: shows changes between commits. If no SHAs are provided, it will use your WIP and HEAD. If only one SHA is provided, it will be compared with HEAD. 52 | * `gk --help`: shows the list of `gk` commands. 53 | 54 | 55 | 56 | --- 57 | 58 | ### Toolbar 59 | 60 | A toolbar above the panel will display the current repo name, branch, tag, and number of changes pending to pull/push. Clicking this toolbar will also toggle the panel on/off. 61 | 62 | 63 | 64 | --- 65 | 66 | ### Terminal Preferences 67 | 68 | Navigate to Preferences Terminal to change your Terminal preferences. 69 | 70 |
71 |

Note: The following shells are available depending on operating system: PowerShell for Windows, ZSH/Bash for Mac and Linux. The Terminal will utilize your operating system's default shell. To switch shells you'll need to set the new shell as default in your operating system settings and restart your computer for auto-complete to continue working as expected

72 |
73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /docs/start-here/profiles.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Profiles 4 | description: Create multiple profiles in GitKraken Client to quickly switch between repository preferences. Manage different gitconfig settings, repositories, and more! 5 | 6 | --- 7 | 8 | GitKraken Client uses profiles to store your app preferences, current [Tabs](/start-here/interface/#tabs), and Git config information. 9 | 10 | 11 | 12 |
13 |

Create and quickly switch between additional profiles for your different projects and work environments on GitKraken Pro

14 |
15 | 16 | *** 17 | ## Profiles 18 | 19 | 20 | 21 | The _Keep my .gitconfig updated with my profile info_ option updates your global `.gitconfig` file with the name and email address of your current profile. 22 | 23 | 24 | ### What's saved in each profile? 25 | 26 | The _General_, _Integrations_, and _UI Preferences_ settings configured under your Preferences are profile-specific. 27 | 28 | [Tabs](/start-here/interface/#tabs) are unique to each profile. When creating a new profile, GitKraken Client will use the same tabs that are open in your current profile. 29 | 30 | 31 | 32 | Integrations are unique to each profile. If you need to connect to a second remote hosting account, create a second profile and connect the other account from the Integrations tab. You can do this for any of the integrations. 33 | 34 | 35 | 36 | ### Changing Avatars 37 | Your commit avatar is either a generated identicon, or the active [Gravatar](https://gravatar.com) image linked to your .gitconfig email address. If you change your Gravatar, your GitKraken Client avatar will update itself. 38 | 39 | To change the image, click the profile icon in the top right corner then Manage Profiles . 40 | 41 | 42 | 43 | 44 | 45 | You can choose from the list of icons available on the left then click . Alternatively, you can set a different email address for this profile if the email address has a different Gravatar image associated to it. 46 | 47 | 48 | 49 | ### Author initials in graph 50 | 51 | GitKraken Client lets you replace all commit nodes with the commit author's initials. 52 | 53 | 54 | 55 | Navigate to Preferences UI Preferences to enable the setting. 56 | 57 | #### What initials does GitKraken Client use? 58 | 59 | If you are just enabling this UI setting, GitKraken Client will reference the original name associated with the commit. 60 | 61 | If a commit was made in GitKraken Client, the app will list initials from the GitKraken user profile. If a commit was made in the CLI, the app will list initials from the user's `.git/config` or global `.gitconfig`. 62 | 63 | 64 | ### Do profiles allow different identity pictures?

65 | 66 | As long you have different email addresses with the profiles associated with Gravatar images, then yes! GitKraken Client at this time does not allow selection of custom images. 67 | 68 | -------------------------------------------------------------------------------- /docs/working-with-repositories/open-clone-init.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Open, Clone, and Init 4 | description: Learn the basics of GitKraken Client, like initializing or cloning projects! 5 | 6 | --- 7 | 8 | Whether you are a newborn or a wizened deep-ocean octopod, each user will need to open, clone, or initialize a repo in GitKraken Client. 9 | 10 | *** 11 | ## Setup 12 | The essential setup process includes: 13 | 14 | 1. [Installing](/how-to-install) GitKraken Client 15 | 2. Creating an account and setting up your [profile](/start-here/profiles) 16 | 17 | Once this is complete, you are ready for your oceanic journey! 18 | 19 | *** 20 | ## Projects in GitKraken Client 21 | There are three ways to start a Git repository when working on a project: 22 | 23 | 1. **Open** - Open a local Git repository already initialized and available locally. 24 | 2. **Clone** - Clone a remote Git repository already initialized. 25 | 3. **Init** - Create an empty Git repository or reinitialize an existing one. 26 | 27 | *** 28 | 29 | ### Opening an existing project 30 | GitKraken Client allows you to load your existing repositories and pick up where you left off. It's also useful for visualizing past work done. 31 | 32 | If you're coming from a Git project you already have locally, navigate to File Open Repo to get started immediately in GitKraken Client. 33 | 34 | 35 | 36 | *** 37 | ### Cloning an existing project 38 | If your project is not on your local machine or you want a new copy, clone the project through File Clone. 39 | 40 | 41 | 42 | This will then prompt you to open the newly copied project in GitKraken Client. 43 | 44 | *** 45 | ### Initialize a new project 46 | Starting a project in GitKraken Client is easy through File Init 47 | 48 | 49 | 50 | All you need to do is fill out the fields and select for the magic to begin. 51 | 52 | #### Input 53 | * New repository path 54 | * `.gitignore` template (**optional**) 55 | * Automatically creates a `.gitignore` file in your working copy. 56 | 57 | * License (**optional**) 58 | * On init, GitKraken Client will create a `LICENSE` file in your repository. 59 | * Check out the [Open Source Initiative](https://opensource.org/licenses) or find out more about [Choosing a License](http://choosealicense.com/). 60 | 61 | #### Output 62 | * A new initialized Git project at the specified repository path by creating a `.git` folder. 63 | * The project is opened in GitKraken Client 64 | * An "Initial commit" on a `master` branch containing a blank `README.md` along with a `.gitignore` and `LICENSE.md` if applicable. 65 | 66 |
67 |

GitKraken Client also allows initializing a repository directly to a remote Git hosting provider such as GitHub and Bitbucket.

68 |
69 | 70 | 71 | *** 72 | 73 | ### Delete a repository 74 | 75 | You may delete a repository by first navigating to the folder icon in the upper left corner of GitKraken Client UI. 76 | 77 | 78 | 79 | Then browse through your repo list and right-click on the repository you wish to delete from your local machine. 80 | 81 | 82 | 83 | If you are unable to delete the repository, first make sure it is closed in GitKraken Client and then close any other applications which may be working with files in the repository. Restart GitKraken Client and try the delete again. 84 | 85 | Deleting the repo from within GitKraken Client will only delete your local copy of the repository. If you wish to delete your remote repository, you will need to perform that action directly by logging into your remote hosting service (GitHub, GitLab, etc). 86 | -------------------------------------------------------------------------------- /docs/working-with-repositories/githooksexample.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Git hooks example 4 | description: Basic example on how to create a git hook. 5 | 6 | --- 7 | 8 | Git hooks are scripts that perform automated actions when a specific action is performed in GitKraken Client or the command line. The git hook name usually indicates the hook's trigger _(e.g. pre-commit)_. 9 | 10 | Git hooks live under the `.git` folder of your repo in a directory called hooks. The path to the hooks will look similar to `repo/.git/hooks`. 11 | 12 | *** 13 | 14 | ### Tools needed 15 | - GitKraken Client 16 | - Text Editor - I will be using [Visual Studio Code](https://code.visualstudio.com/) 17 | - Terminal - I will be using [iTerm2](https://www.iterm2.com/) 18 | 19 | ### Hook Purpose 20 | In this example, we'll create a `pre-commit` hook. This hook validates the git config's global user email and checks whether a _gpg key_ exists. The hook is useful so that the commits contain the correct committer email address and also to ensure the commits are signed. 21 | 22 | ### Creating the git hook 23 | 24 | #### Step 1 25 | First navigate to the hooks directory for the target repo. Open a Visual Studio Code window and navigate to repo      .git       hooks. From here, add a new file to the `.git/hooks` directory called `pre-commit`. 26 | 27 | 28 | 29 |
30 |

Note 📝 - To make the .git folder visible in Visual Studio Code you will need to remove **/.git from files.exclude in the Visual Studio Code settings.

31 |
32 | 33 | #### Step 2 34 | Now that we have our pre-commit file, we need to make it executable. To do this we will need the command line. 35 | 36 | Open a terminal window by using `option + T` in GitKraken Client. Once the terminal windows is open, change directory to `.git/hooks`. 37 | 38 | Then use the command `chmod +x pre-commit` to make the pre-commit file executable. 39 | 40 | 41 | 42 |
43 |

Note 📝 - If you do not have your terminal setup in GitKraken Client, please review the Start Here Tips for setup details.

44 |
45 | 46 | #### Step 3 47 | Now we create our script using bash. In order for the script to run, we first need to specify our shell. Do this by using `#!/bin/bash` at the beginning of your script for bash or `#!/bin/sh` if using the sh shell. Any script that exits with anything other than exit code 0 is considered a fail. 48 | 49 | This `pre-commit` hook watches for incorrect commit authors and unsigned commits using the script below. 50 | 51 | **Script variables:**
52 | `PWD` - Print working directory
53 | `globalEmail` - Get email in global git config
54 | `signingKey` - Get key in global git config
55 | `workEmail` - This is your target email address. The email needed to commit successfully.
56 | 57 | Now to explore the conditions we have set for our script. First we validate that the working directory contains *demo* and that the global git config user.email matches with our workEmail. If it fails we will see: 58 | 59 | ``` 60 | echo "Commit email and global git config email differ" 61 | echo "Global commit email: "$globalEmail"" 62 | echo "Committing email expected: $workEmail" 63 | exit 1 64 | 65 | ``` 66 | 67 | If the condition is met we move on to the next condition. If the global user.signingKey is empty we display: 68 | 69 | ``` 70 | echo "No signing key found. Check global gitconfig" 71 | exit 1 72 | ``` 73 | If the condition is successful the script will run and the commit will be made. 74 | 75 | #### Full Script 76 | ``` 77 | #!/bin/bash 78 | 79 | PWD=`pwd` 80 | globalEmail=`git config --global --get user.email` 81 | signingKey=`git config --global --get user.signingkey` 82 | workEmail="example@axosoft.com" 83 | 84 | if [[ $PWD != "*demo*" && $globalEmail != $workEmail ]]; 85 | then 86 | echo "Commit email and global git config email differ" 87 | echo "Global commit email: "$globalEmail"" 88 | echo "Committing email expected: $workEmail" 89 | exit 1 90 | elif [[ $signingKey -eq "" ]]; 91 | then 92 | echo "No signing key found. Check global gitconfig" 93 | exit 1 94 | else 95 | echo "" 96 | exit 0 97 | fi 98 | ``` 99 | 100 | ### Git hook in action 101 | -------------------------------------------------------------------------------- /docs/working-with-repositories/githooks.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Git hooks 4 | description: Compare your changes with diffs in GitKraken Client. Learn about where to access diffs, file blame, and more. 5 | 6 | --- 7 | 8 | Git hooks are shell scripts that execute after an event such as a commit or push. 9 | 10 | In the following video, we will take you through the basics of what a Git hook is and demonstrate how to use one in GitKraken Client. 11 | 12 |
13 | 14 |
15 | 16 | 17 | *** 18 | 19 | ## Where are Git hooks? 20 | 21 | Hooks are stored in the `hooks` subdirectory of the `.git` directory. This folder is automatically created when you initialize a new repository in GitKraken Client and is located in `.git\hooks` in your project directory. 22 | 23 | Hooks are unique to your local repository and will not be copied over if you create a new repository. Feel free to add, change, or remove scripts from this folder as necessary. 24 | 25 | 26 | 27 | If running OSX or Linux, GitKraken Client will seamlessly detect any Git hooks in your repository if your scripts are set to be executable. If you forgot to set your files to executables, GitKraken Client will throw an error as a heads up. 28 | 29 | And if running Windows, GitKraken Client will detect your Git hooks automatically. 30 | 31 | *** 32 | 33 | ## Define a custom hook path 34 | 35 | Users can define a custom path for git hooks by going to Preferences Git Hooks. to the location or enter the path to your git hook folder. 36 | 37 | This custom git hook path is defined on a per-repository basis. 38 | 39 | 40 | 41 | *** 42 | 43 | ## What hooks are supported by GitKraken Client? 44 | 45 | Here are the hooks supported by GitKraken Client. Where appropriate, beneath each hook are the actions during which GitKraken Client calls that hook: 46 | 47 | 48 | 49 | 50 | 51 | 58 | 59 | 60 | 61 | 74 | 75 | 76 | 77 | 84 | 85 | 86 | 87 | 98 | 99 | 100 | 101 | 106 | 107 | 108 | 109 | 114 | 115 | 116 | 117 | 122 | 123 | 124 | 125 | 132 | 133 | 134 | 135 | 144 | 145 | 146 |

pre-commit

52 | - Commit 53 |
54 | - Amend 55 |
56 | - Merge Resolve 57 |

prepare-commit-msg

62 | - Commit 63 |
64 | - Amend 65 |
66 | - Cherrypick 67 |
68 | - Merge 69 |
70 | - Squash 71 |
72 | - Revert 73 |

commit-msg

78 | - Commit 79 |
80 | - Amend 81 |
82 | - Merge Resolve 83 |

post-commit

88 | - Commit 89 |
90 | - Amend 91 |
92 | - Cherrypick 93 |
94 | - Merge Resolve 95 |
96 | - Revert 97 |

pre-rebase

102 | - Rebase 103 |
104 | - Squash 105 |

post-checkout

110 | - Checkout 111 |
112 | - Discard Changes (selectively) 113 |

post-merge

118 | - Merge (Without Conflicts) 119 |
120 | - Fast-Forward 121 |

post-rewrite

126 | - Amend 127 |
128 | - Squash 129 |
130 | - Rebase 131 |

pre-push

136 | - Push Branch 137 |
138 | - Push Tag 139 |
140 | - Delete Remote Branch 141 |
142 | - Delete Remote Tag 143 |
147 | -------------------------------------------------------------------------------- /docs/release-notes/5x.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: GitKraken Client Release Notes 4 | description: View a history of the new features and fixes in GitKraken Client's Version 5. 5 | og_image: /img/GitKrakenClient-Hero.png 6 | 7 | --- 8 | 9 | Behold the evolution of GitKraken Client! Find out what’s new, what’s fixed, or just take a trip down memory lane with a nostalgic swagger, remembering those bugs of yesterday. 10 | 11 | Download Current Version Now 12 | 13 | *** 14 | 15 | ## Version 5.0.4
16 |

Wednesday, March 27th, 2019

17 | 18 |

Bug Fixes 🐛

19 | * Resolved an issue that prevented GitKraken Client from opening on RHEL & CentOS. 20 | 21 | *** 22 | 23 | ## Version 5.0.3
24 |

Tuesday, March 26th, 2019

25 | *Wave your hands in the air if you feel fine. We're gonna take it into overtime. Welcome to v5.0.3!* 🚀🏀 26 | 27 |

Features

28 | 29 | * *Y’all ready for this?* Users may now resize the reference column inside the graph. 30 | * *Whoop there it is:* Favorite repositories are just a keyboard shortcut away. By typing CTRL/CMD + 1/2/3/etc, you will open your favorite repos in the corresponding order. 31 | * *We know you have that favorite TuneSquid player*... Users are now able to reorder favorite repositories. 32 | * *C'mon, check it out, y'all ready to jam?* We added a search filter to the repository management modal. 33 | 34 |

Improvements

35 | * *No more flagrant fouls!* Spell-checking has been added to the support and feedback forms. 36 | * By typing the keyboard shortcut Ctrl/Cmd + Shift + M, users now have the ability to focus the commit message box. *Nothin’. But. Net.* 37 | 38 | 39 |

Bug Fixes 🐛

40 | * Bitbucket Server users will no longer experience an indefinite hang when opening a pull request or initializing a new repository. *Sorry, hang time isn’t allowed on the GitKraken court.* 41 | * *What’s up doc?* 🥕 The hide/show all tags context menu will now correctly hide and show annotated tags. 42 | * *NOT. TODAY. Mr. Swackhammer…* Commits made with an email address that doesn’t match your GPG key email address will no longer display as trusted. 43 | * *Keif with the assist!* GitKraken Client now supports different locales of GPG when signing a commit. 44 | * Initializing an LFS submodule will no longer cause GitKraken Client to crash. *No more busted brackets workflows around here.* 45 | * *Alley-oop!* Performing a pull on a repository with submodules configured with SSH should now correctly update the submodule. 46 | 47 |

Stand-Alone Clients

48 | * The license.dat file may now be added to GitKraken Client’s parent directory. *SHAZAM!* 49 | 50 | *** 51 | 52 | ## Version 5.0.2
53 |

Friday, March 15th, 2019

54 | 55 |

Bug Fixes 🐛

56 | * The error toast `Cannot read property 'hostname' of undefined` should no longer appear when doing git operations with a SSH key that has a passphrase. 57 | 58 | *** 59 | 60 | ## Version 5.0.1
61 |

Tuesday, March 12th, 2019

62 | 63 |

Bug Fixes 🐛

64 | * Rebasing a branch while a WIP node is present will no longer cause GitKraken Client to get stuck on a loading screen. 65 | 66 | *** 67 | 68 | ## Version 5.0.0
69 |

Tuesday, March 12th, 2019

70 | 71 |
72 | 73 |
74 | 75 |

Features

76 | 77 | * *Raise your chalice!* GitKraken Client now supports [GPG commit signing](/git-workflows-and-extensions/commit-signing-with-gpg/). This helps verify the identity of users making commits within GitKraken Client, and prevents other users from fraudulently using your alias to make commits. *After all, there’s only one true King of the North.* 78 | * GitKraken Client now has [Interactive Rebase](/working-with-repositories/interactive-rebase/) functionality—with a process so smooth and efficient you’ll feel like Brienne of Tarth with a sword. When you drag-and-drop a branch to rebase, you will now see an option for interactive rebase. After opening the interactive rebase view, you can choose from a menu of actions for each commit: 79 | * On the left, pick, reword, squash, or drop commits. 80 | * Use ⬆️ and ⬇️ keys to navigate commits. 81 | * Double-click a commit to reword. 82 | * Drag-and-drop to move commits up and down. 83 | * Use keyboard shortcuts to perform all of these actions! 84 | * You can also right-click on a commit in the graph to access the interactive rebase option for child commits: 85 | * Squash without HEAD 86 | * Move commit 87 | * Edit commit message 88 | * Drop commit 89 | 90 |

Improvements

91 | * Fetching on a repository with multiple remotes is now faster. It will feel like flying on a dragon! 92 | * *Braavos!* An option to clone a repository has been added to GitKraken Client welcome screen. 93 | * The commit panel will now display the committer in addition to the author if the two are different. *No more taking credit for the accomplishments of others, Littlefinger...* 94 | 95 | 96 |

Bug Fixes 🐛

97 | * Our team resolved a memory leak that would occur with the Fetch operation. *Varys and his birds will have to find their secrets elsewhere.* 98 | * GitKraken Client will no longer throw a “Fetching pull requests failed” error when fetching from an Azure DevOps repository without using the integration. *Daenerys doesn’t put up with liars.* 99 | * For MacOS users, selecting the `X` icon in the toolbar will no longer keep the client hidden until a force quit. 100 | 101 | -------------------------------------------------------------------------------- /docs/git-workflows-and-extensions/intro-and-requirements.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Git LFS Requirements 4 | description: Learn how to configure and work with Git LFS within GitKraken Client. 5 | 6 | --- 7 | 8 | ## What is Git LFS and how does it work? 9 | 10 |
11 | 12 |
13 | 14 | Git LFS (Legendary Fabled Squid Large File Storage) is a Git extension for storing large binary files. 15 | 16 | Git LFS allows the user to track binary files directly or by extension. After the files are tracked, Git LFS manages the files as Git normally would, while Git just maintains a text file with metadata about the binary file. 17 | 18 | When viewing the diff of tracked LFS files in GitKraken Client, you will see a versioned URL, a generated SHA, and a size pertaining to the size of the original contents of the file: 19 | 20 | 21 | 22 | Git LFS stores the binary file content on a custom server or via GitHub, GitLab, or BitBucket’s built-in LFS storage. To find the binary content's location, look in your repository’s `.git/lfs/objects` folder. 23 | 24 | Git LFS uses a special Git Hook to handle pushing your LFS files to the special LFS location. Because LFS uses Git filters for handling diffs and proper storage, make sure Git Hooks can run on your machine. 25 | 26 | When pulling or checking out a new branch, all files run through a smudge filter. The smudge filter puts a file into your working directory. 27 | 28 | LFS reads the SHA stored in Git, then uses that to find the appropriate binary file in the `.git/lfs/objects` folder. If it does not find the file it needs, it attempts to download the file from the LFS server found in the local repository’s git config file. 29 | 30 | Once the proper file is found or downloaded, Git LFS replaces the SSH-agent with the binary file in your working directory. 31 | 32 | LFS uses the Git clean filter for changes ready for commit and runs when a file is staged. This filter reads the binary content from the file and converts it to a SHA, which will then be stored in Git while the original binary content will be stored in the `.git/lfs/objects` folder. 33 | 34 | If you wish to learn more about how Git LFS works with Git, visit the [GitHub repository ](https://github.com/git-lfs/git-lfs) documentation. 35 | 36 | *** 37 | 38 | ## Git LFS Requirements 39 | 40 | To enable LFS in GitKraken Client, you must first install Git and LFS. The minimum requirements are: 41 | 42 | * Git version 2.3+ 43 | * LFS version 2.0.1+ 44 | 45 |
46 |

Note: Usually GitKraken Clientdoes not require Git CLI to perform its operations. However, since we do utilize Git CLI to interact with LFS files you will need to have Git installed on your machine if you plan to use LFS.

47 |
48 | 49 | ### Verify Git and LFS Versions 50 | 51 | To verify whether you have the proper version of Git installed, open a terminal or CMD and type the following: 52 | ``` 53 | git --version 54 | ``` 55 | You should see something like this: 56 | ``` 57 | git version 2.13.0 58 | ``` 59 | On Windows you may see some extra characters appended to the version which is expected. If an error appears, please install (or upgrade) Git on your machine. 60 | 61 | GitKraken Client requires version 2.3+ to run LFS. To install or upgrade Git on your machine, visit the [git-scm website](https://git-scm.com/). 62 | 63 | Run the following command in terminal or CMD to verify your machine's version of Git LFS: 64 | ``` 65 | git lfs version 66 | ``` 67 | You should get output similar to the following: 68 | ``` 69 | git-lfs/2.1.0 (GitHub; windows 386; go 1.8.1; git bd2c9987) 70 | ``` 71 | If you do not have Git LFS installed or you have a version less than 2.0.0 installed, visit the [Git LFS website](https://git-lfs.github.com/) to install the proper version. 72 | 73 | After both Git and Git LFS are installed, verify that they are on your path either by running the commands above or by checking your path in the terminal. 74 | 75 |
76 |

Note: If GitKraken Client still cannot find Git or Git LFS, the terminal or CMD may be using a different path than the system or user path. For example, on OSX applications launched from the GUI have a different path than those launched from the terminal.

77 |
78 | 79 | On OSX and Linux, you can run the following command to see the location of Git LFS on the path: 80 | ``` 81 | which git-lfs 82 | ``` 83 | and this command to see the location of Git on the path: 84 | ``` 85 | which git 86 | ``` 87 | On Windows Command prompt, use: 88 | ``` 89 | where git-lfs 90 | ``` 91 | and: 92 | ``` 93 | where git 94 | ``` 95 | 96 | *On Windows you can add to your Path Environmental Variable with the following method:* 97 | 98 | Search `Env` in the start menu. 99 | 100 | 101 | 102 | Next navigate to `Environmental Variables...` Double click **Path** Click `New` to add the paths. 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | You will likely need to add both git and git LFS (LFS can have multiple paths, you would want to add them all). 111 | -------------------------------------------------------------------------------- /docs/working-with-commits/staging.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Staging 4 | description: Learn how to stage and review your files before making your commit. 5 | 6 | --- 7 | 8 | When you are working on a project, the staging pane is where changes are prepped for commit. 9 | 10 | *** 11 | 12 | 13 | 14 | ## Staging files 15 | 16 | Staging adds selected file contents to the index, which is like flagging your work as good to go. 17 | To start, select the _//WIP_ node to see all your files on the Commit Panel. 18 | 19 | 20 | 21 | Once the //WIP node is selected, a will appear when you hover over a file in the Commit Panel. 22 | 23 | 24 | 25 | You may also click on a file for review in the diff or click the . To stage specific lines, select the file, highlight the target lines, then right-click to access the Stage selected lines option. 26 | 27 | 28 | 29 |
30 |

For quickly staging changes, checkout the available Staging keyboard shortcuts on hand!

31 |
32 | 33 | From here you should be set to [commit](/working-with-commits/commits)! 34 | 35 | 36 | 37 | ### Unstaging 38 | 39 | Unstage files by selecting a staged file and hitting the button that appears. If you click on a file to view the diff, you can selectively unstage lines or hunks. 40 | 41 | 42 | 43 | If you need to unstage all files, use the button just above the Staged Files section. From here you should be set to [commit](/working-with-commits/commits)! 44 | 45 | *** 46 | 47 | 48 | 49 | ## Discarding files 50 | 51 | As you review your files, you may meticulously stage lines or hunks of changes or discard changes. 52 | 53 | 54 | 55 | To discard changes, select the _//WIP_ node to summon the icon. This option will discard all changes or discard any multi-selected files. 56 | 57 | 58 | 59 | If more than one changes needs to be discard, multi-select files to **multi-discard**. 60 | 61 | 62 | 63 | Next, you may discard hunks of changes from the [diff](/working-with-commits/diff) of any file. 64 | 65 | 66 | 67 | Alternatively in the staging panel, `Discard Changes` is available in the context menu by right-click. 68 | 69 | *** 70 | 71 | 72 | 73 | ## Ignoring Files 74 | 75 | You can use the `.gitignore` file to tell GitKraken Client to ignore files in your repo that you don't want to be tracked. 76 | 77 | You can view the `.gitignore` documentation for rules and formatting on the [git-scm website](https://git-scm.com/docs/gitignore). 78 | 79 | To ignore a file, right click on the file in the commit panel and select Ignore. 80 | 81 | 82 | 83 | From this menu you may choose to ignore: 84 | * The specific file selected 85 | * All files with that same file extension 86 | * All files in that same directory 87 | 88 | GitKraken Client will create the `.gitignore` file (unless one already exists) at the root of your repo directory and add the appropriate entry, based on your ignore selection. 89 | 90 |
91 |

Note: GitKraken Client will only look at the .gitignore located at the root of your repo directory. Nested .gitignore files are not parsed.

92 |
93 | 94 | 95 | 96 | ### Ignoring previously tracked files 97 | 98 | If a file was previously committed to your repo, then you will see the following options when you attempt to ignore it: 99 | 100 | 101 | 102 | Selecting `Ignore` will add the corresponding entry to the .gitignore file, but the changes will not be ignored, because the file is already being tracked by git. 103 | 104 | 105 | 106 | Selecting `Ignore and Stop Tracking` will add the corresponding entry to the `.gitignore` file and remove the file from the git index, so git stops tracking it. 107 | 108 | -------------------------------------------------------------------------------- /docs/working-with-commits/diff.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Diff, Blame, and History 4 | description: Compare your changes with diffs in GitKraken Client. Learn about where to access diffs, file blame, and more. 5 | 6 | --- 7 | 8 | 9 | Compare changes within GitKraken Client _diffs_. Learn where to access _diffs_, and how to access _file history_ or _file blame_. 10 | 11 | *** 12 | 13 | 14 | 15 | ## What is a diff in GitKraken Client? 16 | 17 | A diff shows what was added or removed from a file. Red is for lines where content was removed whereas green is for new lines added. 18 | 19 | 20 | 21 | GitKraken Client's diff comes included with the following: 22 | 23 | - Word diffing 24 | - Syntax highlighting 25 | - File mini-map 26 | - Toggles between Hunk View, Inline View, and Split View 27 | - Arrows to move between change sets 28 | 29 | Most importantly, the button allows you to edit this file directly. Learn more about this feature in [Editing Files](/working-with-files/editing-files) section. 30 | 31 | *** 32 | ## Where can I access the diff? 33 | 34 | Access the diff of a file from: 35 | 36 | * **Staging**: Click on a file 37 | * **Commit node**: With a commit node selected, click on any file 38 | 39 | If you have two commits selected, GitKraken Client shows the difference between the two commits. 40 | 41 | 42 | 43 | Additionally, select multiple commit rows in the graph using Shift Click to show its merged diff: 44 | 45 | 46 | 47 | ### Hunk view 48 | 49 | Hunk view will show the diff as blocks, without the context of the rest of the file. 50 | 51 | 52 | 53 | ### Inline view 54 | 55 | Inline view will show the diff within the context of the entire file. 56 | 57 | 58 | 59 | ### Split view 60 | 61 | Split view will show a side by side diff comparing how the file looked before (left), and how it looks after the change (right). Note, you may select deleted lines with your mouse from split view. 62 | 63 | 64 | 65 | *** 66 | 67 | ## External diff tools 68 | Configure your preferred external diff tool from Preferences General: 69 | 70 | 71 | 72 | GitKraken Client currently _only supports_ the following diff tools: 73 | 74 | - Beyond Compare 75 | - FileMerge 76 | - Kaleidoscope 77 | - KDiff 78 | - Araxis 79 | - P4Merge 80 | 81 | If your diff tool from the list above is installed and is not showing up in the dropdown, then look for an option to install command line tools. 82 | 83 | 84 | 85 | If you would like to use another diff tool, navigate to Preferences General and set the Diff Tool to _Git Config Default_. Then open your global `.gitconfig` file and add these additional lines to use that diff tool. Here are some examples for each operating system: 86 | 87 | #### Mac OS 88 | ``` 89 | [diff] 90 | tool = meld 91 | [difftool "meld"] 92 | cmd = open -a Meld --args \"$LOCAL\" \"$REMOTE\" 93 | ``` 94 | 95 | #### Linux 96 | ``` 97 | [diff] 98 | tool = meld 99 | [difftool "meld"] 100 | cmd = meld \"$LOCAL\" \"$REMOTE\" 101 | ``` 102 | 103 | #### Windows 104 | ``` 105 | [diff] 106 | tool = meld 107 | [difftool "meld"] 108 | cmd = \"C:\\Program Files\\Meld\\Meld.exe\" "$LOCAL" "$REMOTE" 109 | ``` 110 | 111 | *** 112 | ## Diff multiple commits 113 | 114 | Use the Shift or Cmd/Ctrl key to select multiple commits in the graph. 115 | 116 | 117 | 118 | This will produced a combined diff, which lists all files that were added, modified, renamed or deleted between the selected commits in the Commit Panel. 119 | 120 |
121 |

Note: Are you looking to diff branches? Consider using the Cmd/Ctrl key to select the head commits of each branch.

122 |
123 | 124 | *** 125 | ## File Blame and History 126 | 127 | _File History_ and _File Blame_ information display in the same view. 128 | 129 | To access either option, click to view the file diff and the options will appear in the upper right. 130 | 131 | 132 | 133 | You may also click on a commit in the graph and then right click a file to access _File History_ or _File Blame_. _File History_ shows that file's commit history on the left. 134 | 135 | 136 | 137 | _File Blame_ will color code the commit author of each line or hunk. 138 | 139 | 140 | 141 | Use the top toggle button to switch between Diff View, which shows the selected commit's changes to the file, and the File View, which shows the file's state at that commit, including the blame info. 142 | -------------------------------------------------------------------------------- /docs/working-with-repositories/workspaces.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Workspaces 4 | description: Workspaces allow you to create groups of repositories. 5 | 6 | --- 7 | 8 | GitKraken Workspaces allow you to create easily accessible groups of repositories, take action across multiple repos, view details about their state at a glance, and share them with your team. 9 | 10 |
11 |

12 | Note: 13 | Workspaces can contain repositories hosted on GitHub.com, GitHub Enterprise, GitLab.com, GitLab Self-Managed, Bitbucket.org, and Azure DevOps. To create a Workspace, the integration must be connected under Preferences > Integrations. 14 |

15 |
16 | 17 | *** 18 | 19 | ## Create a workspace 20 | 21 | To create a Workspace, navigate to the Workspaces tab. If this is your first time creating one, select . Otherwise, select . 22 | 23 | You can give the Workspace a name, icon, description, and make it personal or shared with your organization. Under _Add repositories_, select which hosting service these repositories will be from. If you have not connected the integration, selecting that service will take you to the integration connection. Finally, select the desired repositories for the workspace and then . 24 | 25 | 26 | 27 | ## Team Workspaces 28 | 29 | Workspaces are available as either a *Personal* or *Team* type. 30 | 31 | **Personal Workspaces** are only accessible by you on this machine. 32 | 33 | **Team Workspaces** will be available for the selected teams within your organization. This helps ensure that everyone is up-to-date on the same set of repositories by offering multi-repository actions and the ability to work with all pull requests from these repositories. 34 | 35 | 36 | 37 | Learn more about [how to create a team](https://support.gitkraken.com/start-here/teams/). 38 | 39 | ## Edit a workspace 40 | 41 | Edit a workspace by selecting the ellipsis icon by the Workspace name. 42 | 43 | 44 | 45 | ## Multi-repository actions 46 | 47 | All repositories in a Workspace can be cloned, fetched, or opened at once, making it easy to get a new member of your team onboarded quickly or keep repository information up-to-date. Repositories can be effortlessly opened in GitKraken, in your default editor, or on their hosting service. 48 | 49 | To perform an action on multiple repositories, select the check box next to the repository name and then select the desired action from the options at the top. 50 | 51 | 52 | 53 | ## Repository statuses 54 | 55 | Workspaces expose the state of all repositories so you can see the last checked-out branch, how many commits are ahead or behind the remote, and your work in progress with counts of modified added, deleted, and renamed files. 56 | 57 | 58 | 59 | 60 | ## Workspace breadcrumb in toolbar 61 | 62 | The option to remove the Workspace breadcrumb in the toolbar can be toggled under Preferences > UI Customization > _Show Workspace breadcrumb in toolbar_. 63 | 64 | 65 | 66 | ## View Repository Details 67 | 68 | You may select the list icon to open the repository details. 69 | 70 | 71 | 72 | ## Pull requests 73 | 74 | The Pull Request section will show all open pull requests for all repositories within the selected workspace. Information shown here includes the pull request title, pull request number, CI status, the name of the branch being merged, and number of comments. 75 | 76 | To view a workspaces pull requests, select a workspace and then select `Pull Requests`. 77 | 78 | 79 | 80 | Select `Filter pull requests` to filter for pull requests with the following options: 81 | 82 | * "Opened by Me", to show pull requests that were opened by the user. This filter is available for GitHub, GitHub Enterprise, GitLab, and GitLab Self-Managed repositories. 83 | * "At Risk", to show any pull requests that are not drafts and have been open for longer than 7 days. This filter is currently only available for GitHub, GitHub Enterprise, GitLab, and GitLab Self-Managed repositories. 84 | * "By repository", to limit the view to a single repo within the Workspace. This filter is currently available for Azure DevOps, GitHub, GitHub Enterprise, Gitlab, and Gitlab Self-Managed repositories. 85 | 86 | The search allows searching by pull request titles for all services. For GitHub.com workspaces, GitHub's search syntax can also be used. 87 | 88 | 89 | 90 | At risk pull requests are pull requests that have not been updated in more than 7 days and are not in draft. This is shown for GitHub, GitHub Enterprise, GitLab and GitLab Self-Managed pull requests. This is indicated by the `At risk` label. 91 | 92 | 93 | 94 | ### GitHub pull request view 95 | 96 | If you are working with a GitHub.com workspace, you may select a pull request to work with the GitHub pull request view. 97 | 98 | -------------------------------------------------------------------------------- /docs/start-here/tips.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Tips 4 | description: Find out all the things users should know to boost their GitKraken Client experience. 5 | 6 | --- 7 | 8 | Here's the TLDR of the best features in GitKraken Client. 9 | 10 | *** 11 | 12 | ### 1. Set up Profiles 13 | 14 | If you have personal projects you wish to separate from work repos–or if you need to connect to multiple instances of GitHub, GitLab, Bitbucket, etc.–then set up [Profiles](/start-here/profiles). 15 | 16 | 17 | 18 | Each profile stores different app preferences and Git config information, which makes it easier to switch context. 19 | 20 |
21 |

Multiple Profiles is a GitKraken Pro only feature.

22 |
23 | 24 | *** 25 | 26 | ### 2. Use the Command Palette 27 | 28 | Work like the pros, and use the [Command Palette](/start-here/command-palette) to quickly access GitKraken Client actions. 29 | 30 | 31 | 32 | As you type, the Command Palette will find the most relevant commands, allowing you to perform many actions without clicking. Here are a few examples: 33 | 34 |

Core:

35 | 36 | * `Redo` 37 | * `Undo` 38 | 39 |

File:

40 | 41 | * `Create File` + `filename` 42 | * `Delete File` + `filename` 43 | * `Open File` + `filename` 44 | * `View File` + `filename` 45 | * `Edit File` + `filename` 46 | * `Discard all changes` 47 | * `Stage all changes` 48 | * `Unstage all changes` 49 | 50 | 51 | 52 | *** 53 | 54 | ### 3. Keyboard Shortcuts 55 | 56 | For fast fingers, check out our [keyboard shortcuts](/start-here/keyboard-shortcuts). These will help you blitz through the app. 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 |
 MacWindows/Linux
Open keyboard shortcuts/Ctrl/
74 | 75 | *** 76 | 77 | ### 4. Create, Open and Edit Files in the Built-In Code Editor 78 | 79 | To create a file directly in GitKraken Client, use the keyboard shortcut Ctrl/Cmd + P to open the Command Palette, type `Create File`, and then type the name of your file before hitting Enter. 80 | 81 | The code editor will automatically open so you can jump right in and start working on your project. 82 | 83 | 84 | 85 | You can also right click the empty space in the Commit Panel and click the `Create File` context menu option. 86 | 87 | To open an existing file to the built-in code editor, select a branch and navigate to the file you'd like to edit in the Commit Panel. 88 | 89 | Double click the file to bring it to File View. From File View, you can click to edit a file and make changes directly. You'll notice syntax highlighting, code hinting, a file minimap, and the ability to search your file. 90 | 91 | 92 | 93 | Learn more about [editing files](/working-with-files/editing-files) in GitKraken Client. 94 | 95 | To delete a file, right-click on the file from the Commit Panel to access the delete option. 96 | 97 | 98 | *** 99 | 100 | ### 5. Favorite Repos 101 | 102 | Favorite the repos you work on most so they show up at the top of your list. 103 | 104 | 105 | 106 | You can favorite a repository by right-cliking a recently opened repository in the drop down list, or you can click the heart from the repository management window. 107 | 108 | 109 | 110 | *** 111 | 112 | ### 6. Integrate with GitHub, GitLab, Bitbucket, and Azure DevOps 113 | 114 | GitKraken Client allows you to authenticate with GitHub, GitLab, Bitbucket, and Azure DevOps (previously VSTS), which will help you find repos when cloning or adding your remotes. 115 | 116 | 117 | 118 | ### Benefits 119 | 120 | - Create repositories on GitHub/GitLab/Bitbucket/Azure DevOps including .gitignore and license 121 | - Save authentication into profiles 122 | - Clone from remote repo list 123 | - Add remotes 124 | - Create and view pull requests 125 | 126 | *** 127 | 128 | ### 7. Build Status, Assignees, and Reviewers in PRs 129 | 130 | If you are using the GitLab or GitHub integration, you may also add a pull request assignee and label(s) to your pull request. GitKraken Client will then pass these values onto GitLab or GitHub when the pull request is created. 131 | 132 | 133 | 134 | If you are using the GitHub integration, you may also add reviewers and multiple assignees to a pull request. 135 | 136 | 137 | 138 | Additionally for GitHub pull requests, this tooltip will show assignees, labels, reviewers, and build status. 139 | 140 | 141 | 142 | Learn more about [pull requests](/working-with-repositories/pull-requests). 143 | 144 | *** 145 | 146 | ### 8. File History and File Blame 147 | 148 | File History and File Blame information display in the same view. 149 | 150 | To access either option, first click on a commit in the graph. Then right click a file to access File History or File Blame. 151 | 152 | 153 | 154 | File History shows that file's commit history on the left. 155 | 156 | 157 | 158 | Use the top toggle button to switch between Diff View, which shows the selected commit's changes to the file, and the File View, which shows the file's state at that commit, including the blame info. 159 | 160 | *** 161 | 162 | ### 9. Open Terminal 163 | 164 | You can open the terminal or CLI from GitKraken Client! 165 | 166 | To open the current repo folder in terminal, go to File Open Terminal or use the keyboard shortcuts opt + T (Mac) / alt + T (Windows + Linux). 167 | 168 | You can set your default terminal from Preferences General. 169 | 170 | *** 171 | 172 | ### 10. Resize the Graph 173 | 174 | It's simple, but easy to miss. Hover over any of the colored lines to drag and drop the graph. 175 | 176 | 177 | 178 | 179 | Resize and marvel at the colors of the rainbow. 180 | 181 | 182 | 183 | -------------------------------------------------------------------------------- /docs/start-here/preferences.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Preferences 4 | description: Customize your GitKraken Client experience to match your tastes! 5 | 6 | --- 7 | 8 | Navigate to Preferences to customize your GitKraken Client experience. Here are what each of the major sections do. 9 | 10 | 11 | 12 | 13 | *** 14 | 15 | ## Organization 16 | 17 | This section will actually be labeled with your organization name rather than "Organization". It shows the members and teams within your organization. Click `switch organization` to swap to another organization. 18 | 19 | The Owner and any Admins are able to: 20 | 21 | - Change role of members within the organization 22 | - Invite members to the organization and purchase licenses 23 | - Create and manage teams 24 | 25 | 26 |
27 |

Note: the Organization section is only availibe to users who have a Pro or Enterprise license. 28 |

29 |
30 | 31 | ## General 32 | 33 | ### Auto-Fetch 34 | 35 | Set the number of minutes between auto-fetches. This value must be between 0 and 60 minutes, and it will fetch all visible remotes for the repository. Setting the value to 0 minutes will disable auto-fetch. 36 | 37 | If you’re experiencing issues with performance, consider setting your auto-fetch value to 0 and restarting the application. 38 | 39 | ### Auto-Prune 40 | 41 | Removes any remote-tracking references that no longer exist on the remote. 42 | 43 | ### Default Branch Name 44 | 45 | Set the default name when initializing a new repo. The app defaults to `main`. 46 | 47 | ### External Merge Tool 48 | 49 | This is where you may set your preferred external merge tool. 50 | 51 | - [Supported Merge Tools](/working-with-repositories/branching-and-merging/#external-merge-tools) 52 | 53 | ### External Diff Tool 54 | 55 | There is where you may set your preferred external diff tool. 56 | 57 | - [Supported Diff Tools](/working-with-commits/diff/#external-diff-tools) 58 | 59 | ### External Editor 60 | 61 | You may open a repo in your preferred external editor program using the [Command Palette](/start-here/command-palette/). Supported editors include: 62 | 63 | - VS Code 64 | - Atom 65 | - Sublime 66 | - IntelliJ 67 | 68 | 69 | ### Delete ".orig" files 70 | 71 | GitKraken Client will make .orig files during a merge. If turned off, these before and after files will not be automatically deleted. 72 | 73 | ### Default Terminal 74 | 75 | You may open the current repo folder in terminal by navigating to File Open Terminal or use the keyboard shortcuts opt + T (Mac) / alt + T (Windows + Linux). 76 | 77 | Set your preferred terminal from this preference option for this action. 78 | 79 | ### Use Custom Terminal Command 80 | 81 | Enables the option to specify a custom command to open a terminal window. 82 | 83 | For example, to set up GitKraken Client to open Powershell 7, use the command ` start "" "C:\Program Files\PowerShell\7\pwsh.exe" -noexit -command "cd %d"` 84 | 85 | ### Show All Commits in Graph 86 | 87 | Enabling this option will force GitKraken Client to always show all commits in repo. 88 | This setting may cause performance issues with large repositories. 89 | 90 | ### Max Commits in Graph 91 | 92 | Set the max number of commits GitKraken Client will show in the graph. 93 | Lower counts may help improve performance, and the minimum value is 2000 commits. 94 | 95 | ### Remember tabs 96 | 97 | This will remember open tabs when you quit GitKraken Client. This option will also remember what tabs you have open for each profile. 98 | 99 | ### Longpaths (Windows Only) 100 | 101 | For Windows users, GitKraken Client will respect the `core.longpaths` setting in the global .gitconfig. Adjusting this setting will change `core.longpaths` in your .gitconfig. `core.longpaths` only applies to the files in the working directory, not in the .git directory, to maintain compatibility with Git for Windows. 102 | 103 | ### AutoCRLF (Windows Only) 104 | 105 | For Windows users, GitKraken Client will respect the `core.autocrlf` setting in the global .gitconfig. Adjusting this setting will change `core.autocrlf` in your .gitconfig. Enabling this option auto-converts CRLF line endings into LF when adding a file to index, and vice versa when checking out code onto your file system. For more information check out this [git documentation](https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration#_core_autocrlf) 106 | 107 | ### Use extended logging in activity log 108 | 109 | Provides more information for the activity log. You may access the activity log from Help Support Logs Activity Logs. 110 | 111 | ### Forget all Usernames and Passwords 112 | 113 | Removes credentials that currently stored by GitKraken Client. 114 | 115 | ### Share work-in-progress status with my team 116 | 117 | Allows other users in your team to see your local work in progress files. This is directly related to the [Teams](/working-with-repositories/teams) feature. 118 | 119 | ## Profiles 120 | 121 | GitKraken Client uses profiles to store your app preferences, current [Tabs](/start-here/interface/#tabs), and Git config information. 122 | 123 | [Learn more about Profiles](/start-here/profiles) 124 | 125 | ## SSH & Integrations 126 | 127 | GitKraken Client supports HTTPS and SSH authentication, and provides useful integrations with many Git hosting services. Here's how to get started. 128 | 129 | - [General SSH settings](/integrations/authentication/#ssh) 130 | - [GitHub Integration](/integrations/github/) 131 | - [GitHub Enterprise Integration](/integrations/github-enterprise/) 132 | - [GitLab Integration](/integrations/gitlab/) 133 | - [GitLab Self-Managed Integration](/integrations/gitlab-self-hosted/) 134 | - [Bitbucket Integration](/integrations/bitbucket/) 135 | - [Bitbucket Server Integration](/integrations/bitbucket-server/) 136 | - [Azure DevOps Integration](/integrations/visual-studio-team-services/) 137 | - [TFS, AWS CodeCommit, custom service, etc](/integrations/authentication/) 138 | - [Jira Cloud Integration](/integrations/jira/) 139 | - [Jira Server Integration](/integrations/jira-server/) 140 | 141 | ## Notifications 142 | 143 | GitKraken Client's notification system is designed to tell you about updates, bug fixes, product tips, and more. The following preferences are available: 144 | 145 | - Enable Desktop Notifications 146 | - Receive Marketing Notifications 147 | - Receive Help Notifications 148 | 149 |
150 |

Note: Marketing notifications can only be disabled by Pro users. 151 |

152 |
153 | 154 | 155 | ## UI Customization 156 | 157 | The following UI preferences are available: 158 | 159 | - [Theme](/start-here/themes) 160 | - Notification location 161 | - Show toolbar icon labels 162 | - Enable spell checking 163 | - Display author initials instead of avatars (Gravatar) 164 | - Show GitKraken Boards button in toolbar 165 | - Show GitKraken Timelines in toolbar 166 | - Show commit author in graph 167 | - Show commit date/time in graph 168 | - Show commit sha in graph 169 | 170 | ## GPG Preferences 171 | 172 | Learn more about how to [configure GPG signing](/git-workflows-and-extensions/commit-signing-with-gpg/#configure-gpg-in-gitkraken) in GitKraken Client. 173 | 174 | ## Editor Preferences 175 | 176 | Customize the following settings for your GitKraken Client editor and diff: 177 | 178 | - Font 179 | - Font size 180 | - Tab size 181 | - End of line character 182 | - Syntax highlighting 183 | - Show line numbers 184 | - Word wrap 185 | 186 | ## Terminal 187 | 188 | These settings only effect `Terminal` tabs. 189 | 190 | - Font 191 | - Font Size 192 | - Enable Autocomplete Suggestions 193 | - Show Graph Panel by Default 194 | - Terminal Theme 195 | 196 | ## Repo-Specific Preferences 197 | 198 | Repo-Specific preferences only apply to the repo currently open in GitKraken Client. The following preferences are repo-specific: 199 | 200 | - [Gitflow](/git-workflows-and-extensions/git-flow/) 201 | - [Git Hooks](/working-with-repositories/githooks/) 202 | - [Commit Template](/working-with-commits/commits/#commit-templates) 203 | - [LFS](/git-workflows-and-extensions/intro-and-requirements/) 204 | - [Issues](/integrations/jira/) 205 | - [Team](/working-with-repositories/team-view) 206 | 207 | You may configure unique repo-specific settings for each repo. 208 | 209 | -------------------------------------------------------------------------------- /docs/working-with-commits/commits.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Committing Changes 4 | description: Commit to save your work with GitKraken Client easily when changing files. Learn how to squash, amend and save work when committing. 5 | 6 | --- 7 | 8 | Commit to save work with GitKraken Client when changing files. Whether you commit to other things in life is up to you... 9 | 10 | 11 | *** 12 | 13 | 14 | 15 | ## Making a commit 16 | 17 | To make a commit in GitKraken Client, select your _Work in Progress_ and to view recent changes on the Commit Panel. 18 | 19 | 20 | 21 | Select the files you wish to stage, and click on any files you wish to review in the diff. To stage all your files, use the keyboard shortcut ShiftS for Mac or CtrlShiftS for Windows or Linux. 22 | 23 | When you’re ready, type your message and hit commit to commit your changes. You can also use this **Commit** keyboard shortcut + Enter for Mac or Ctrl + Enter if you are on Linux or Windows. 24 | 25 | 26 | 27 | The graph updates with your commit, but the undo button or this keyboard shortcut 28 | + Z for Mac or Ctrl + Z for Windows/Linux can undo a commit made by mistake. 29 | 30 | 31 | 32 | ### Committing with Co-Authors 33 | 34 | To add co-authors to a commit, add a line to your commit description using the following format: 35 | ``` 36 | Co-authored-by: INSERT NAME 1 37 | Co-authored-by: INSERT NAME 2 38 | ...and so on 39 | 40 | ``` 41 | 42 | 43 | 44 | The commit panel will then show the co-author in the history for that commit: 45 | 46 | 47 | 48 | *** 49 | 50 | 51 | 52 | ## Commit Templates 53 | 54 | 55 | 56 | ### Reading the Commit Template 57 | When you open a repository, GitKraken Client will first check for a commit template set up in your repository's `.git/config`. If no commit template is found, it will then check your default (global) `.gitconfig`. If no commit template is found there either, then no commit template will be populated in GitKraken Client. 58 | 59 | 60 | 61 | ### Creating and Updating the Commit Template 62 | You can create and update a commit template in GitKraken Client by visiting Preferences Commit Template. 63 | 64 | If a commit template was read from your local git config, any changes you make to the template in GitKraken Client will save to the file specified. 65 | 66 | If a commit template was not read from your default `.gitconfig` or you are creating a template for the first time, any change you make to the template in GitKraken Client will be written to a file called `gkcommittemplate.txt` in your repository's `.git/` directory. GitKraken Client will also update your repository's git config `commit.template` setting to point to this file. This allows you to make changes to your local commit template without overwriting your global commit template for all of your other repositories. 67 | 68 | Checking the `Apply this template to commit messages` option will automatically apply the template to the commit message pane. If this option is not checked, the commit message pane will be blank. 69 | 70 | 71 | 72 | There are three different ways to set up commit templates in GitKraken Client: 73 | 74 | * **Create the template in GitKraken Client** - This will create a file called `gkcommittemplate.txt` in your repository's `.git/` directory. 75 | 76 | * **Add a repo-specific commit template** - Open a terminal in your local repository and run `git config commit.template ` 77 | 78 | * **Add a global commit template** - Open a terminal window and run `git config --global commit.template ` 79 |
80 |

**Note:** Any changes made in GitKraken Client to a global commit template will cause GitKraken Client to create a `gkcommittemplate.txt` file in your local `.git/` directory and point your repository's git config `commit.template` setting to the `gkcommittemplate.txt` file

81 |
82 | 83 | 84 | *** 85 | 86 | 87 | 88 | ## Amending commits 89 | 90 | GitKraken Client allows you to amend a commit message, add additional changes, or both. 91 | 92 | To add more changes, amend a commit by clicking on the _//WIP_ node on the graph. 93 | 94 | 95 | 96 | If you only need to update the commit message, select the most recent commit and click in the message box to amend the message. 97 | 98 | 99 | 100 | To accommodate viewing a longer commit description, click on the bar at the the bottom of the message box and drag downwards to dynamically resize the text field. 101 | 102 | 103 | 104 | 105 | Select to save your changes or to discard. 106 | 107 |
108 |

Note: Amending commits which are already pushed to a remote are more difficult to apply and would require a force push for the rewrite.

109 |
110 | 111 | *** 112 | 113 | 114 | 115 | ## Resetting commits 116 | Git keeps track of your current commit in a file called the HEAD. When resetting a commit, you update the HEAD of your repo to point to the selected commit. GitKraken Client offers the following reset options: 117 | 118 | * **Soft** - resets the HEAD to the selected commit, but keeps your changes staged and in your WIP directory 119 | * **Mixed** - resets the HEAD to the selected commit, unstages your changes, but keeps them in your WIP directory 120 | * **Hard** - resets the HEAD to the selected commit, unstages your changes, and deletes your WIP files 121 | 122 | 123 | 124 | You may also drag and drop a branch onto another to select from the three reset options above or access the reset options from your local repos in the left panel. 125 | 126 | *** 127 | 128 | 129 | 130 | ## Reverting changes 131 | 132 | 133 | Undo, undo, undo. You can undo many of your actions in GitKraken Client with the Undo icon. 134 | 135 | If you're a keyboard fan, you may also enjoy using the keyboard shortcut 136 | + z for Mac or Ctrl + Z for not-Mac. 137 | 138 | 139 | 140 | ### Reverting commits 141 | 142 | If you wish to revert a commit (perhaps Undo is not available), the option is available when right-clicking on a commit node. This will create a new commit to reverse your previous changes. 143 | 144 | 145 | -------------------------------------------------------------------------------- /docs/working-with-repositories/branching-and-merging.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Branching and Merging 4 | description: Learn about branching and merging in GitKraken Client. 5 | 6 | --- 7 | 8 | Learn how to branch and merge in GitKraken Client. 🌳 🔀 9 | 10 | *** 11 | 12 | ## Branches 13 | When starting work on a new feature or bug, create a new branch. Right click on any existing commit to create a branch: 14 | 15 | 16 | 17 | A branch is a pointer to a specific commit in the repo, rather than making entire copies of the working directory files. 18 | 19 | Branches allow you to isolate new work from other areas of the repository, and consider implementing [GitFlow](/git-workflows-and-extensions/git-flow) as a merging strategy. 20 | 21 | ### Checking out branches 22 | Branch checkout updates files in the working directory to reflect the version defined by that branch. 23 | 24 | New commits are added to the checked out branch. If you find yourself on the wrong branch, [stash](/working-with-commits/stashing) your changes, switch to the correct branch, and then *pop* the stash. 25 | 26 | When you create a new branch, GitKraken Client will automatically checkout the branch for you: 27 | 28 |
29 | 30 |
Right click to create a new branch.
31 |
32 | 33 | To checkout a different branch, double click on the branch label on the left panel or via the graph. Checkout is also available by right-clicking a branch. 34 | 35 | ### Delete a branch 36 | 37 | To delete a branch, right-click the branch and select `Delete {branch-name}`. You cannot delete a branch that is checked out. 38 | 39 | To delete multiple local branches in the left panel, hold Shift then click to select a range of branches or hold ⌘ | Ctrl then click to select specific branches. Then right-click to access the delete option. 40 | 41 | 42 | 43 |
44 |

Caution: Deleting a branch is a destructive action.

45 |
46 | 47 | *** 48 | ## Merging 49 | 50 | Merging takes the commits on two different branches and combines them. 51 | 52 | With a merge, files are automatically merged unless there are two conflicting set of changes, i.e. commits on the different branches updating the same line in different ways. 53 | 54 | Drag and drop one branch onto another to initiate a merge, or just right click the branch you would like to merge in and select merge from the menu. 55 | 56 | 57 | 58 |
59 |

Note 📝 - The In-app merge conflict output editor is only available with a Paid license.

60 |
61 | 62 | 63 | ### Choose your own adventure 64 | * I want to merge my own stuff in -- Continue onward! 65 | * I want someone else to review and merge for me -- You want a [Pull Request!](https://support.gitkraken.com/working-with-repositories/pull-requests/) 66 | 67 | 68 | ### Merge Conflict Editor 69 | 70 | Merge conflicts may happen when team members make different changes to the same line of the same file, or when one team member edits a file and another deletes the same file. Oops! 71 | 72 | When collaboration goes wrong, GitKraken Client Merge Conflict Editor is here to clear the murky waters. 73 | 74 | If your merge attempt triggers a merge conflict, GitKraken Client display the conflicting files in the Commit Panel. 75 | 76 | 77 | 78 | Clicking a conflicted file opens the _Merge Tool_. 79 | 80 | The current branch is on the left, and the target branch that you're merging into is shown on the right. The _Merge Tool_ output is at the bottom. 81 | 82 | 83 | 84 | Each conflict section has a checkbox. Checking a section adds it to the **Output** at the bottom so you can see the options in context to decide which makes the most sense to commit. 85 | 86 | 87 | 88 | You can also mouse over the line number and click to select specific lines for the Output, or edit the Output window directly. 89 | 90 | Clicking the up and down arrows will move you to the next conflict. 91 | 92 |
93 |

Tip - Use the keyboard shortcut Cmd/Ctrl + F to search any of the 3 diffs inside the merge tool.

94 |
95 | 96 |
97 |

Note 📝 - The In-app merge conflict output editor is only available with a Paid license.

98 |
99 | 100 |
101 | 102 |
103 | 104 | After the conflict is resolved, save the output and commit the changes. 105 | 106 |
107 |

Watch our Learn Git Tutorial on how to resolve merge conflicts in git.

108 |
109 | 110 | 111 | ### External merge tools 112 | Configure GitKraken Client to launch your tool of choice by navigating to Preferences General: 113 | 114 | 115 | 116 | GitKraken Client currently supports the following merge tools: 117 | 118 | * Beyond Compare 119 | * FileMerge 120 | * Kaleidoscope 121 | * KDiff 122 | * Araxis 123 | * P4Merge 124 | 125 | If your merge tool from the list above is installed and is not showing up in the dropdown, then look for an option to install command line tools. 126 | 127 | 128 | 129 | GitKraken Client does _not support_ the following merge tools: 130 | 131 | * Meld 132 | * SemanticMerge 133 | * TortoiseMerge 134 | * WinMerge 135 | 136 | While GitKraken Client allows Git Config Default merge tools, not all tools will be compatible. Find more information about configuring a [default merge tool in your Git Config](https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration#_external_merge_tools). 137 | 138 | ### Resolving a conflicted file using current or incoming 139 | 140 | You may resolve a conflicted file by right-clicking the file in the commit panel and selecting the option `Take current (branch)` or `Take incoming (branch)`. 141 | 142 | * `Take current (branch)` will apply the changes of the current branch. 143 | * `Take incoming (branch)` will apply the changes of the incoming branch. 144 | 145 | 146 | 147 | *** 148 | 149 | ## Rebasing 150 | Rebasing takes the commits from one branch and places them onto the last commit of another branch. This alters the tree structure by moving the commits and their changes onto the target branch. 151 | 152 |
153 | 154 |
155 | 156 | To perform a rebase, drag and drop one branch onto another branch then select Rebase. 157 | 158 | 159 | 160 | You can rebase onto a local or remote. 161 | 162 | 163 | -------------------------------------------------------------------------------- /docs/git-workflows-and-extensions/commit-signing-with-gpg.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Commit Signing with gpg 4 | description: Learn how to create GPG keys and sign your commits in GitKraken Client 5 | 6 | --- 7 | 8 | ##What is Commit Signing? 9 | 10 | In Git, you may commit using any name and email address. However, Git supports signing commits and annotated tags using a GPG key pair. 11 | 12 | By signing a commit, other users with your public key can verify the commit was created by the owner of that key. Users can also share their public key with their remote hosting service, such as GitHub, so that commits appear as verified on their website. 13 | 14 | ###Commit Signing Requirements 15 | 16 | Before you start signing your commits, you will first need to install and configure GPG. GPG download files can be found [here](https://www.gnupg.org/download/index.html). Our recommendations to get GPG installed quickly are below. 17 | 18 |
19 |

Note: If you have GitKraken Client open, we recommend closing the application before installing GPG.

20 |
21 | 22 | 23 | + **Windows:** [Gpg4win](https://gpg4win.org/download.html), simply follow the installer. 24 | 25 | + **Mac:** We recommend downloading GPG on Mac through [Brew](https://brew.sh/). Once you have brew, simply run `brew install gpg`. 26 | 27 | + **Linux:** Install gpg through your distribution’s package manager. 28 | 29 | + **Debian/Ubuntu:** `apt install gnupg` 30 | + **Fedora:** `dnf install gnupg2` 31 | + **CentOS/RHEL:** `yum install gnupg2` 32 | 33 | Once you have installed GPG to your machine, you can verify it is installed and check the version by opening your terminal and running `gpg --version`. 34 | 35 |
36 |

Note: You may need to replace `gpg` with `gpg2` if you installed GPG2 without an alias. If you have both gpg and gpg2, you will need to prefix with gpg2 if you wish to use the latter.

37 |
38 | 39 | 40 | 41 | 42 | ###Generating a GPG Key In GitKraken 43 | 44 | If you have GPG installed on your local machine, you will be able to generate a GPG key pair from within GitKraken Client. 45 |
46 |

Note: Make sure that you have [configured GPG inside of GitKraken Client](/git-workflows-and-extensions/commit-signing-with-gpg/#configure-gpg-in-gitkraken).

47 |
48 | 49 | Under `Preferences` → `GPG Preferences`, there is an option to `Generate new GPG Key`. If you wish to enter a passphrase, make sure you do so prior to selecting `Generate`. 50 | 51 | 52 | 53 | ###Configure GPG in GitKraken 54 | 55 | Once you have GPG installed on your machine, you will need to configure GitKraken to use GPG. Launch GitKraken Client and navigate to Preferences → GPG Preferences. 56 | 57 | 58 | 59 | + **Signing Key:** This dropdown list will contain all of your local keys. Select the key you wish GitKraken Client to use when signing your commits and annotated tags. **If this list is blank you can try the following troubleshoots:** 60 | * You may need to configure the GPG Program setting first. 61 | + If you installed GPG while GitKraken Client was open, you may need to fully close GitKraken Client and re-launch it. 62 | 63 | + **GPG Program:** This is the location of where GPG is installed on your local machine. If GPG is on your path, GitKraken Client should automatically detect the GPG program. However, it is possible to have multiple installations of GPG so you can specify which one GitKraken Client should point to by using the 64 | 65 | button. 66 | 67 | 68 | 69 | If you do not know where GPG is installed on your local machine, launch a terminal and enter: `which gpg` for Mac & Linux. On Windows, use: `where gpg` 70 | 71 | + **Sign Commits by Default:** Enabling this checkbox will have GitKraken Client sign any commit you create going forward. 72 | 73 | + **Sign Tags by Default:** Enabling this checkbox will have GitKraken Client sign any annotated tags you create going forward. 74 | 75 | + **Generate new GPG Key:** GitKraken Client will generate a new GPG key for you, see [Generating a GPG Key In GitKraken](/git-workflows-and-extensions/commit-signing-with-gpg/#generating-a-gpg-key-in-gitkraken). 76 | 77 | ###Verifying a Local Commit is Signed 78 | 79 | You can verify a commit has been signed by selecting a commit and viewing the commit panel. An icon will appear to the left of the commit SHA on signed commits only. 80 | 81 | 82 | 83 | If you hover over the badge, you will see a tooltip which displays the Signature details. 84 | 85 | 86 | 87 | Below is a list of possible signature codes and what they mean: 88 | 89 | + `GOODSIG` -- The signature with the keyid is good. 90 | + `EXPSIG` -- The signature with the keyid is good, but the signature is expired. 91 | + `EXPKEYSIG` -- The signature with the keyid is good, but the signature was made by an expired key. 92 | + `REVKEYSIG` -- The signature with the keyid is good, but the signature was made by a revoked key. 93 | + `BADSIG` -- The signature with the keyid has not been verified. 94 | + `ERRSIG` -- It was not possible to check the signature. This may be caused by a missing public key or an unsupported algorithm. 95 | 96 | 97 | ###Uploading Your GPG Key to a Remote Hosting Service 98 | 99 | To upload your GPG public key to your remote hosting service, we recommend viewing the documentation for the respective hosting service: 100 | 101 | * [GitHub](https://help.github.com/articles/adding-a-new-gpg-key-to-your-github-account/) 102 | * [GitLab](https://docs.gitlab.com/ee/user/project/repository/gpg_signed_commits/#adding-a-gpg-key-to-your-account) 103 | * [Bitbucket](https://confluence.atlassian.com/bitbucketserver/using-gpg-keys-913477014.html#UsingGPGkeys-AddaGPGkeytoBitbucketServer) 104 | 105 | To copy your GPG public key in GitKraken Client, navigate to Preferences → GPG Preferences and below your Signing Key, select `Copy GPG Public Key`. 106 | 107 | ###Editing Your GPG Key 108 | 109 | Editing your gpg key is helpful when you wish to add another email address to a key or renew an expired key. To edit a GPG key, navigate to your terminal and enter `gpg --list-secret-keys --keyid-format LONG`. This command will output a list of your GPG keys, take note of the ID of the key you wish to edit. 110 | 111 | 112 | 113 | Now that you have the key ID, you can edit the key. To do so enter `gpg --edit-key FFFFFF` where `FFFFFF` is your key ID. You will then enter an editing session with your GPG key. After you update your key, execute a `save` to record changes and quit editing the key. 114 | 115 | Below is a list of useful commands to edit your key: 116 | 117 | + `adduid`- Add a new user ID to the GPG key 118 | + `deluid` - Delete a user ID from the GPG key 119 | + `trust` - Change the owner trust value. This updates the trust database immediately and no save is required. 120 | + `expire` - Change a key expiration time 121 | + `save` - Save all changes to the current key and quit 122 | + `quit` - Quit without updating the current key 123 | 124 | For a complete list you can review [GNU’s documentation](https://www.gnupg.org/gph/en/manual/r899.html). 125 | 126 | Make sure to upload the updated key on your hosting service once you have saved. See [Uploading Your GPG Key to a Remote Hosting Service](/git-workflows-and-extensions/commit-signing-with-gpg/#uploading-your-gpg-key-to-a-remote-hosting-service). 127 | 128 | ###Deleting your GPG Key 129 | 130 | You can delete your key via terminal with the command `gpg --delete-secret-keys` simply append your username or key ID. 131 | 132 | 133 | There will be several prompts to make sure that you *really* want to delete your GPG key: 134 | 135 | 136 | -------------------------------------------------------------------------------- /docs/start-here/guide.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: New to Git 4 | description: Learn how to get started with GitKraken Client. 5 | 6 | --- 7 | 8 | Whether you are a newborn or a wizened deep-ocean octopod, this Getting Started Guide uses a basic workflow to provide an overview of GitKraken Client interface from cloning your repository to successfully executing Git actions. 9 | 10 | *** 11 | 12 | ## Learning Git with GitKraken 13 | 14 | In this series, we'll provide Git tutorial videos. You'll learn Git concepts and how to apply them in GitKraken Client. 15 | 16 |
17 | 18 |
19 | 20 | Interested in how version control fits into a DevOps workflow? Check out our [DevOps Tools Report](https://www.gitkraken.com/resources/devops-report-2020) to learn more. 21 | *** 22 | 23 | ## GitKraken Tutorials 24 | 25 | Need a hand jumping into the product? Here's a playlist with a few video tutorials. 26 | 27 |
28 | 29 |
30 | 31 | *** 32 | 33 | ## Define local 34 | 35 | Most of the work you do in GitKraken Client is using the local repository, meaning the files and changes are saved on your local machine. 36 | 37 | You can easily identify any local branches in the graph as they are shown with the icon. 38 | 39 | One of the reasons why Git is so fast when compared to other SCM tools is because all changes are made locally rather than on a remote server. The local repository includes all of the branches, and changes made to the repo, since the time it was created. 40 | 41 | Because you make a copy of the entire remote repo, you can change branches, view history, and commit changes without needing a network connection. It also means if there is a catastrophic event on the remote server, or if another user makes an unwanted change on a remote, all of the other members of the team would still have a copy of the full repo so it can easily be restored. 42 | 43 | ### .git folder 44 | When initializing a Git repo or cloning from a remote, you will notice a `.git` folder in the project root. This contains all of the information required for the Git repository and if this folder is deleted, you would no longer be able to switch branches, pull from remotes, or view commit history. 45 | 46 | ### Working directory 47 | The working directory is the currently checked out version of the files in the local repository. When you change branches, pull in changes, or reset, GitKraken Client will update the files in the working directory to reflect the changes. 48 | 49 | For more information on Git repositories, check out the [Git repository tutorial](https://blog.axosoft.com/2016/10/28/git-tutorial-repository/) blog post including a video from one of our developers. 50 | 51 | *** 52 | 53 | ## Workflow Example 54 | Once your repository is initialized and the [interface](/start-here/interface) is out of the way, it's time to get cracking ... _Whaahh-pssh!_ ... and tie all of the interface and concepts together to perform work on your repository. 55 | 56 | 57 | Up until this point, you have created an entire folder representing your project with great potential. With this example, we'll take the next step and make a commit to production in a basic workflow. 58 | 59 | 60 | ### Branching 61 | The newly initialized repository created results in a default `master` branch. Synonymous with production, typically commits are not made directly to this, but rather are reviewed and merged in. 62 | 63 |
64 |

Branches can be thought of as an area to silo where to commit. Its reference is specifically a moving pointer to an individual commit object.

65 |
66 | 67 | 68 | 69 | On our newly created repo, we'll branch off from `master` to silo our normal development. To do this, right-click master on the graph and select Create branch here. Let's call this branch `develop` in "_enter branch name_" which is going to be an indefinite main track branch to the project. 70 | 71 | Once created, GitKraken Client will auto checkout `develop` and switch to that new branch. 72 | 73 | ### Changing file content 74 | Now that `develop` is set, we can make some new changes without affecting anything on production. 75 | 76 | In the example, the `README.md` file was created automatically to provide context about the project. This involves creating the file, writing content, and then saving it to disk. With Git, the last step to save becomes more granular in order to write desired changes for revision history. 77 | 78 | 79 | `README.md` was created as a placeholder and the project can become more meaningful by modifying the file with the project context, as well as adding additional project files. Any modifications and additions will have to be staged and committed, which will only affect our current branch. 80 | 81 | 82 | You can select _Initial Commit_ from the graph, and click `README.md` to open the built-in editor. 83 | 84 | 85 | 86 | ### Staging and Committing 87 | Say you made changes to the `README.md` file. When selecting the _//WIP_ node, there will now be pending changes to `README.md` in the staging panel under _Unstaged Files_. 88 | 89 | 90 | 91 | Next, let's move these changes into the _Staged Files_ section by selecting the green button. 92 | 93 | Outside of Git, work is done in a typical File Save method or written automatically when changes are detected. In a way, committing in Git is like the Save, where we've made a pointer to the changes in this current version of the file to keep in history. 94 | 95 | From here, type a brief summary of your changes and click to save your changes to the `README.md` file. This effectively updates the reference on `develop`, pointing to your first modification after _Initial Commit_. 96 | 97 |
98 |

It's easy to distinguish between different types of changes including Added, Modified, Renamed, and Deleted files.

99 |
100 | 101 | Visit [staging](/working-with-commits/staging) for vast coverage of the topic, including staging individual lines or hunks of file changes. Be sure to check out [commits](/working-with-commits/commits) too. 102 | 103 | ### Merging 104 | Now that our `develop` branch is up to date, we want to roll out these changes into production. 105 | 106 | From the graph we see that `develop` is ahead of `master` by exactly 1 commit. 107 | 108 | 109 | 110 | In order to add this commit into the original branch, we will merge `develop` back into `master`. This will take all of the changes introduced since the last commit and play them on this branch by performing a new commit (called a merge commit) with the changes. 111 | 112 | There are a few ways to perform the merge action in GitKraken Client, but perhaps the easiest is from within the graph. 113 | 114 | In the graph, you can see we have things in a new branch, `develop`, that we want in our source branch, `master`. Like any sensible person, we would only have to pick up `develop` and throw it at `master` right? Right! Simply drag `develop` and drop it on `master` to get the merge option. 115 | 116 | 117 | 118 | Alternatively the same merge can be performed through right click and other means. Revisit and learn more about merging and other options available through [Branching and Merging](/working-with-repositories/branching-and-merging). 119 | 120 | ### Summary 121 | 122 | In the end, this is as simple as it gets in terms of workflow and paves the way for incorporating changes into [pushing and pulling](/working-with-repositories/pushing-and-pulling) or venturing to advanced models like [GitFlow](/git-workflows-and-extensions/git-flow). 123 | 124 | Remember, you must crawl before you can walk and without a doubt you will be running in no time! 125 | 126 | Below is a sample video on how a simple commit is created as was explained in this guide. For more topics `checkout` the rest of the categories and pages listed. 127 | 128 | Your quest continues! 129 | 130 | 131 |
132 | 133 |
134 | -------------------------------------------------------------------------------- /docs/working-with-repositories/pull-requests-filter-syntax.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Filter Syntax 4 | description: Learn about pull request filter syntax in GitKraken Client. 5 | 6 | --- 7 | 8 | You can create filters using the below syntax to pull requests shown. 9 | 10 | *** 11 | 12 | ## GitHub 13 | 14 | ### Parameters Available 15 | 16 | |Filter |Example |Description | 17 | |:------------------|:------------------------------|:------------------------------------------------------------------------------------------------------| 18 | |Title/body search |`foo` |Will match pull requests containing the string `foo` in their title and description. | 19 | |Title/body search |`foo bar` |Will match the pull requests containing the string `foo bar` in their title and description. | 20 | |in: |`foo in:title` |Will match the pull requests containing the string `foo` in only their title. | 21 | |in: |`foo in:body` |Will match the pull requests containing the string `foo` in only their description. | 22 | |author: |`author:keanu` |Will match pull requests created by the user `keanu`. | 23 | |assignee: |`assignee:keanu` |Will match pull requests assigned to the user `keanu`. | 24 | |review-requested: |`review-requested:jerry` |Will match pull requests that need to be reviewed by the user `jerry`. | 25 | |reviewed-by: |`reviewed-by:keanu` |Will match pull requests that have been reviewed by the user `keanu`. | 26 | |involves: |`involves:jerry` |Will match pull requests that the user `jerry` has reviewed, has been assigned to, or has commented on.| 27 | |base: |`base:main` |Will match pull requests that are merging into `main`. | 28 | |head: |`head:development` |Will match pull requests that are merging from `development`. | 29 | |draft: |`draft:true` |Will match pull requests that are marked as a draft. | 30 | |label: |`label:"Release Critical"` |Will match pull requests that have the `Release Critical` label. | 31 | |milestone: |`milestone:v1` |Will match pull requests that have the `v1` milestone. | 32 | 33 | ### Review State 34 | The review filter can take multiple parameters, which are `approved`, `changes_requested`, or `none`. 35 | 36 | |Filter |Example |Description | 37 | |:------------------|:------------------------------|:------------------------------------------------------------------------------------------------------| 38 | |review: |`review:approved` |Will match pull requests that have been approved by at least one person. | 39 | |review: |`review:changes_requested` |Will match pull requests that have at least one person requesting changes. | 40 | |review: |`review:none` |Will match pull requests that no reviews. | 41 | 42 | ### Status 43 | The status filter can take multiple parameters, which are `success`, `pending`, or `failure`. 44 | 45 | |Filter |Example |Description | 46 | |:------------------|:------------------------------|:------------------------------------------------------------------------------------------------------| 47 | |status: |`status:success` |Will match pull requests with a success status. | 48 | |status: |`status:pending` |Will match pull requests with a pending status. | 49 | |status: |`status:failure` |Will match pull requests with a failed status. | 50 | 51 | ### No Value 52 | The no value filter will include pull requests if the specified parameter does not exist on a pull request. The parameters available are `assignee`, `involves`, `label`, `milestone`, `review-requested`, and `status`. 53 | 54 | |Filter |Example |Description | 55 | |:------------------|:------------------------------|:------------------------------------------------------------------------------------------------------| 56 | |no: |`no:assignee` |Will match pull requests that have no assignees. | 57 | |no: |`no:status` |Will match pull requests that have no status. | 58 | 59 | ### Dates 60 | Date fields on a pull request can be tested in various forms using the `created` and `updated` filters. 61 | 62 | |Filter |Example |Description | 63 | |:------------------|:------------------------------|:------------------------------------------------------------------------------------------------------| 64 | |created: |`created:2019-12-14T19:20:16Z` |Will match pull requests created after 2019-12-14T19:20:16Z. | 65 | |updated: |`updated:2019-12-14T19:20:16Z` |Will match pull requests updated after 2019-12-14T19:20:16Z. | 66 | |created: |`created:2020-12-31` |The filter will also attempt to support the user's local format. | 67 | 68 | ### OR Conditions 69 | All filters support OR conditions if provided with comma separated values. 70 | 71 | |Example |Description | 72 | |:----------------------------------|:------------------------------------------------------------------------------------------------------| 73 | |label:Bug,Feature |Will match pull requests that have either the label `Bug` or `Feature`. | 74 | |assignee:jerry,keanu |Will match pull requests that are assigned to either `jerry` or `keanu`. | 75 | |label:Bug,Feature label:Important |Will match pull requests that have either the label `Bug` or `Feature`, and have the label `Important`.| 76 | 77 | ### Excluding Results 78 | Adding a `-` to the front of any of the above will cause pull requests matching that query to be excluded from results. 79 | 80 | |Example              |Description | 81 | |:----------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------| 82 | |-no:assignee |Will match pull requests that _have_ an assignee. | 83 | |-assignee:guy |Will match pull requests that _are not_ assigned to the user `guy`. | 84 | |-label:Bug,Next |Will match pull requests that _do not_ have _either_ the `Bug` or `Next` label. This is effectively the same as using `-label:Bug -label:Feature`. | 85 | 86 | ### Combining Parameters 87 | All of the above can be used in any combination. Pull requests will be matched if they meet _all_ of the parameters in the query. 88 | 89 | + `foo bar label:feature -has:assignee` 90 | 91 | *** 92 | 93 | ## Other Integrations 94 | 95 | We do not support all filters on other integrations, including GitLab, Bitbucket, and Azure DevOps. 96 | 97 | |Integration |updated:|review-requested:|assignee:|title/body search, in:, no:, created:, base:, head:|reviewed-by:, review:, involves:, label:, milestone:, draft:, status:| 98 | |---------------------|:------:|:---------------:|:-------:|:-------------------------------------------------:|:-------------------------------------------------------------------:| 99 | |GitLab + Self Managed|✔ | |✔ |✔ | | 100 | |Bitbucket |✔ | |✔ |✔ | | 101 | |Bitbucket Server |✔ |✔ | |✔ | | 102 | |Azure DevOps | | |✔ |✔ | | -------------------------------------------------------------------------------- /docs/working-with-repositories/pushing-and-pulling.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Pushing and Pulling 4 | description: Pushing and Pulling data from Remote Repos. 5 | 6 | --- 7 | 8 | Pushing and pulling are the keys to collaboration. 🤝 9 | 10 |
11 | 12 |
13 | 14 | 15 | *** 16 | ## Adding Remotes 17 | To add a new remote, click the icon when hovering over Remote in the left panel, then fill in the remote URL. 18 | 19 | 20 | 21 | When using an integration like GitHub or Bitbucket, select the remotes from your collaborators in the dropdown box. This makes viewing other forks of the same repository quick and easy. 22 | 23 |
24 |

Note: When using an integration, the drop-down box will only display Forks of this repository. If you would like to add a remote that is not a fork you can still do so via the URL option.

25 |
26 | 27 | You can identify remote branches in the graph through the following icons: 28 | 29 | + — GitHub 30 | + — Bitbucket 31 | + — GitLab 32 | + — Azure DevOps 33 | + — Other Remote Server 34 | 35 | All remote branches are located in the left panel. 36 | 37 | *** 38 | 39 | ## Push 40 | Pushing takes any local changes , and making them available on the remote . 41 | 42 | Push the currently checked out branch by clicking Push in the main toolbar, or by right clicking on the branch, and selecting Push. 43 | 44 | 45 | 46 | Pushing attempts to upload any new commits to the remote branch, then fast-forward the remote to bring it up to date with the local repo. 47 | 48 | If the remote branch cannot be fast-forwarded, the push will be refused. If this is the case, GitKraken Client will provide the option to _Pull (fast-forward if possible)_, or . 49 | 50 |
51 |

Caution: Forcing a push is considered destructive because it overwrites the remote branch by replacing it with the local branch.

52 |
53 | 54 | If the branch pushed does not exist on the remote, GitKraken Client will prompt you to name and create the new remote branch. This is typically the fork name followed by a slash, and the branch name. i.e. `origin/my-branch`. 55 | 56 | ### Drag and drop to push 57 | 58 | Drag and drop a branch to a remote to access the Push action. You may drag a branch to a remote branch on the graph, or to a remote branch listed in the left panel. 59 | 60 | 61 | 62 | *** 63 | ## Fetching 64 | Pulling and fetching take updates from the remote and get them into our local repo. 65 | 66 | 67 | 68 | ### Fetch All 69 | Fetching gets updates from remote branches, but does not update any files in your working directory. 70 | 71 | Updates will appear in the graph, and also update any branches on the left to show how many commits you are ahead or behind. 72 | 73 | When you're behind the remote, it means that there are commits on the remote branch which have not been incorporated into the local repo. _Pull (fast-forward if possible)_ to get these changes on local. 74 | 75 | 76 | 77 | If you are ahead of the remote branch, there are local commits that have not yet been pushed to the remote. 78 | 79 | It is possible to be both ahead of and behind a remote. However if you are both ahead and behind a remote, you will not be able to perform a _Pull (fast-forward if possible)_ as the branches have diverged. Consider rebasing onto the remote first. 80 | 81 | GitKraken Client automatically fetches updates from your remote repositories every minute by default. You can change this setting from Preferences General menu. 82 | 83 | ### Fast-forwarding 84 | Fast forwarding moves the currently checked out commit to one that was added later, replaying all commits in between in the order which they happened. 85 | 86 | 87 | 88 | To fast-forward your currently checked out commit, you can right click on the branch with newer commits, and select the Fast-Forward option from the menu. 89 | 90 | 91 | 92 | *** 93 | ## Pulling 94 | Pulling first performs a fetch and then incorporates any commits in the remote repository into the local copy. 95 | 96 | There are three pulling options. Let's demonstrate what each one does by starting with an example 2 commits made locally, and 2 that have been made on the remote. 97 |
98 | 99 |
The remote commits display on the graph because they have been fetched,
but have not been incorporated into the local repo.
100 |
101 | 102 | ### Pull (fast-forward if possible) 103 | _Pull (fast-forward if possible)_ fetches any updates on the remote branch, then attempts to _fast-forward_ the local branch. If a _fast-forward_ is not possible, a _merge_ will be performed. 104 | 105 | This is the default option for new GitKraken Client users. 106 | 107 |
108 | 109 |
A fast-forward was not possible, so the remote branch was merged into the local branch.
110 |
111 | 112 | ### Pull (fast-forward only) 113 | _Pull (fast-forward only)_ fetches any updates and then attempts a _fast-forward_. If a fast-forward is not possible, GitKraken Client will not make any changes to the local repo. 114 | 115 | In our 2-commit example, a fast-forward is not possible as there are new commits added to both branches. 116 | 117 | ### Pull (rebase) 118 | _Pull (rebase)_ stashes all commits on this branch, pulls in new commits from the remote, and then replays your commits. This has the added benefit of maintaining all commits in a single line, as opposed to creating branches which are then merged back together. 119 | 120 |
121 | 122 |
The remote commits were pulled in, then the local commits were moved on top of them.
123 |
124 | 125 |
126 |

Note: Remember the golden rule of rebasing, 'Never rebase while you're on a public branch', which is covered in our blog post.

127 |
128 | 129 | ### Setting a default pull option 130 | Set the default pull option by clicking the down arrow to the right, and clicking on the circle button by each option. 131 | 132 | 133 | 134 | Our [interface](/start-here/interface) page covers this and more. 135 | 136 | 137 | *** 138 | ## Setting the upstream branch 139 | Whenever pushing, pulling, or fetching, GitKraken Client gets updates from the _Upstream_ branch. 140 | 141 | The _Upstream_ defaults to the remote branch where the local branch was checked out, but you may change the _Upstream_ to push, pull, or fetch from a different branch. 142 | 143 | Right click on a branch to set the upstream or click the option. 144 | 145 | 146 | 147 | Alternatively, drag and drop a branch to push instead of setting upstream. 148 | 149 | -------------------------------------------------------------------------------- /docs/start-here/keyboard-shortcuts.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | title: Keyboard Shortcuts 4 | description: At anytime in GitKraken Client, you can pull up a full list of keyboard shortcuts available. Work faster in GitKraken Client with keyboard shortcuts. Learn more. 5 | 6 | --- 7 | 8 | We know keyboard shortcuts help get things done faster, and here’s a handy list of the shortcuts currently supported by GitKraken Client. 9 | 10 | *** 11 | ### Open list of keyboard shortcuts 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 |
 MacWindows/Linux
Open keyboard shortcuts/Ctrl/
29 | 30 | ### Repo actions 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 |
MacWindows/Linux
Create branchBCtrlB
Fetch allLCtrlL
Stage the current fileSS
Stage all filesShiftSCtrlShiftS
Unstage the current fileUU
Unstage all filesShiftUCtrlShiftU
Commit staged files with current messageEnterCtrlEnter
Stage all files and commit with current messageShiftEnterCtrlShiftEnter
Focus commit message boxShiftMCtrlShiftM
87 | 88 | ### Navigation 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 112 | 114 | 115 | 116 | 117 | 119 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 141 | 143 | 144 | 145 |
 MacWindows/Linux
Select next commit in graphJ or J or
Select previous commit in graphK or K or
Select next item in branchShift
111 | ShiftJ
Shift
113 | ShiftJ
Select previous item in branchShift
118 | ShiftK
Shift
120 | ShiftK
Select first commit in graphCtrlHOME
Select last commit in graphCtrlEND
UndoZCtrlZ
RedoY
140 | ShiftZ
CtrlY
142 | CtrlShiftZ
146 | 147 | ### Command Palette 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 187 | 188 | 189 | 192 | 193 | 194 | 197 | 198 | 199 | 202 | 203 | 204 | 207 | 208 |
 MacWindows/Linux
Toggle Command PalettePCtrlP
Search commitsFCtrlF
Open repo via Command PaletteShiftO 170 | CtrlShiftO 171 |
Search file to view history and blameShiftHCtrlShiftH
Focus the left panel filter barOptionFCtrlAltF
Open current repo in terminalOptionT 185 | AltT 186 |
Open current repo in File ManagerAltO 190 | AltO 191 |
Open diff or merge toolD 195 | CtrlD 196 |
Close current repoW 200 | CtrlW 201 |
Search within file (if file content has focus)F 205 | CtrlF 206 |
209 | 210 | ### UI 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 225 | 226 | 227 | 229 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 |
 MacWindows/Linux
Toggle Fullscreen ModeControlF
223 |
CtrlShiftF
224 |
Increase Zoom=
228 | +
Ctrl=
230 | Ctrl+
Decrease ZoomCtrl
Reset zoom0Ctrl0
Toggle the left panelJCtrlJ
Toggle the Commit Details panelKCtrlK
Focus the search barFCtrlF
Focus the left panel filter barOptionFCtrlAltF
Close the current panel (if one is open)EscEsc
269 | 270 | ### Tabs 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 285 | 286 | 287 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 |
 MacWindows/Linux
New TabCmdT
283 |
CtrlT
284 |
Close TabCmdW
288 |
CtrlW
289 |
Swap to Tab #1-9#1-9Ctrl#1-9
Jump to next open tabTabCtrlTab
Jump to previous open tabShiftTabCtrlShiftTab
308 | 309 | 310 | --------------------------------------------------------------------------------