├── 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 | | 31 | | Mac | 32 |Windows/Linux | 33 |
|---|---|---|
| Undo | 38 |⌘Z | 39 |CtrlZ | 40 |
| Redo | 43 |⌘Y 44 | ⌘ShiftZ |
45 | CtrlY 46 | CtrlShiftZ |
47 |
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 | 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 |
13 |
14 | 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 |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 |
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 | | 35 | | Mac | 36 |Windows/Linux | 37 |
|---|---|---|
| Toggle Command Palette | 42 |⌘P | 43 |CtrlP | 44 |
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 | | 31 | | Mac | 32 |Windows/Linux | 33 |
|---|---|---|
| Swap to Favorite Repo #1 | 38 |⌘control1 | 39 |Ctrlalt1 | 40 |
| Swap to Favorite Repo #2 | 43 |⌘control2 | 44 |Ctrlalt2 | 45 |
| Swap to Favorite Repo #1-9 | 48 |⌘control#1-9 | 49 |Ctrlalt#1-9 | 50 |
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 |
14 |
15 | Because this is a GitHub Beta Feature, you will need to register for the GitHub Actions beta on your GitHub account .
17 |
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 | Note: the GitHub Actions section will only appear when working in GitHub repositories
31 |
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 |
20 |
21 | Check out these training resources to get started using GitKraken Client with GitHub, GitLab, Bitbucket or Azure DevOps.
24 |
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 | Note: The fork feature is only available through the GitHub Integration.
12 |
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
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 |
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 | Note: If you start the interactive rebase with GitKraken Client you must finish the rebase with GitKraken Client.
30 |
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
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 | Note: Team View is only available for users in an organization. See the Teams page for more information on managing teams.
12 |
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 |
13 |
14 | ***
15 | ## Adding submodules
16 | Add a submodule by clicking the when hovering over
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 | IMPORTANT: Any commits made in detached HEAD state will be lost when you check out any branch. 35 |
36 |
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
20 |
21 | 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 |
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 |
58 |
59 | Note: GitKraken Client will automatically perform an LFS pull after cloning a repo or initializing a submodule with LFS
61 |
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 | **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 |
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 | 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 |Note: Pro accounts are limited to 1 Team. Upgrade to GitKraken Enterprise to create and manage more than 1 Team. 14 |
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 | Pro accounts are limited to 1 Team. Upgrade to GitKraken Enterprise to create and manage more than 1 Team.
44 |
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 | Looking for GitKraken Enterprise installation instructions? Then please start in with our Enterprise System Requirements page.
22 |
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 | 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 |
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 | Note: 48 | For more verbose logging, navigate to Preferences > General > Use extended logging in activity log. 49 |
50 |
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 |
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 | Note: Gitflow has the benefit of adding all features, hot-fixes, and release branches in different folders.
40 |
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 | 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 |
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 | 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 |
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 | Create and quickly switch between additional profiles for your different projects and work environments on GitKraken Pro
14 |
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 |
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 | GitKraken Client also allows initializing a repository directly to a remote Git hosting provider such as GitHub and Bitbucket.
68 |
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 | 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 |
41 |
42 | Note 📝 - If you do not have your terminal setup in GitKraken Client, please review the Start Here Tips for setup details.
44 |
--------------------------------------------------------------------------------
/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 |
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 | |
51 |
52 | - Commit
53 | 54 | - Amend 55 | 56 | - Merge Resolve 57 | |
58 |
|
61 |
62 | - Commit
63 | 64 | - Amend 65 | 66 | - Cherrypick 67 | 68 | - Merge 69 | 70 | - Squash 71 | 72 | - Revert 73 | |
74 |
|
77 |
78 | - Commit
79 | 80 | - Amend 81 | 82 | - Merge Resolve 83 | |
84 |
|
87 |
88 | - Commit
89 | 90 | - Amend 91 | 92 | - Cherrypick 93 | 94 | - Merge Resolve 95 | 96 | - Revert 97 | |
98 |
|
101 |
102 | - Rebase
103 | 104 | - Squash 105 | |
106 |
|
109 |
110 | - Checkout
111 | 112 | - Discard Changes (selectively) 113 | |
114 |
|
117 |
118 | - Merge (Without Conflicts)
119 | 120 | - Fast-Forward 121 | |
122 |
|
125 |
126 | - Amend
127 | 128 | - Squash 129 | 130 | - Rebase 131 | |
132 |
|
135 |
136 | - Push Branch
137 | 138 | - Push Tag 139 | 140 | - Delete Remote Branch 141 | 142 | - Delete Remote Tag 143 | |
144 |
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 | 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 |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 |
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 | For quickly staging changes, checkout the available Staging keyboard shortcuts on hand!
31 |
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 | Note: GitKraken Client will only look at the .gitignore located at the root of your repo directory. Nested .gitignore files are not parsed.
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 | Note: Are you looking to diff branches? Consider using the Cmd/Ctrl key to select the head commits of each branch.
122 |
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 | 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 |
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 | Multiple Profiles is a GitKraken Pro only feature.
22 |
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 | | 62 | | Mac | 63 |Windows/Linux | 64 |
|---|---|---|
| Open keyboard shortcuts | 69 |⌘/ | 70 |Ctrl/ | 71 |
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 | Note: the Organization section is only availibe to users who have a Pro or Enterprise license. 28 |
29 |Note: Marketing notifications can only be disabled by Pro users. 151 |
152 |
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
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 **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 |
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 | 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 |
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 |
30 |
42 |
43 | Caution: Deleting a branch is a destructive action.
45 |
57 |
58 | Note 📝 - The In-app merge conflict output editor is only available with a Paid license.
60 |
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 | Tip - Use the keyboard shortcut Cmd/Ctrl + F to search any of the 3 diffs inside the merge tool.
94 |Note 📝 - The In-app merge conflict output editor is only available with a Paid license.
98 |
102 | Watch our Learn Git Tutorial on how to resolve merge conflicts in git.
108 |
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 |
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 | Note: If you have GitKraken Client open, we recommend closing the application before installing GPG.
20 |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 |
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 | 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 |
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 |
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 |
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 | 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 |
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 | It's easy to distinguish between different types of changes including Added, Modified, Renamed, and Deleted files.
99 |
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 |
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 |
13 |
14 |
15 | ***
16 | ## Adding Remotes
17 | To add a new remote, click the icon when hovering over
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 | 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 |
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 | Caution: Forcing a push is considered destructive because it overwrites the remote branch by replacing it with the local branch.
52 |
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
99 |
109 |
122 | Note: Remember the golden rule of rebasing, 'Never rebase while you're on a public branch', which is covered in our blog post.
127 |
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 | | 17 | | Mac | 18 |Windows/Linux | 19 |
|---|---|---|
| Open keyboard shortcuts | 24 |⌘/ | 25 |Ctrl/ | 26 |
| 35 | | Mac | 36 |Windows/Linux | 37 |
|---|---|---|
| Create branch | 42 |⌘B | 43 |CtrlB | 44 |
| Fetch all | 47 |⌘L | 48 |CtrlL | 49 |
| Stage the current file | 52 |S | 53 |S | 54 |
| Stage all files | 57 |⌘ShiftS | 58 |CtrlShiftS | 59 |
| Unstage the current file | 62 |U | 63 |U | 64 |
| Unstage all files | 67 |⌘ShiftU | 68 |CtrlShiftU | 69 |
| Commit staged files with current message | 72 |⌘Enter | 73 |CtrlEnter | 74 |
| Stage all files and commit with current message | 77 |⌘ShiftEnter | 78 |CtrlShiftEnter | 79 |
| Focus commit message box | 82 |⌘ShiftM | 83 |CtrlShiftM | 84 |
| 93 | | Mac | 94 |Windows/Linux | 95 |
|---|---|---|
| Select next commit in graph | 100 |J or ↓ | 101 |J or ↓ | 102 |
| Select previous commit in graph | 105 |K or ↑ | 106 |K or ↑ | 107 |
| Select next item in branch | 110 |Shift↓ 111 | ShiftJ |
112 | Shift↓ 113 | ShiftJ |
114 |
| Select previous item in branch | 117 |Shift↑ 118 | ShiftK |
119 | Shift↑ 120 | ShiftK |
121 |
| Select first commit in graph | 124 |⌘↑ | 125 |CtrlHOME | 126 |
| Select last commit in graph | 129 |⌘↓ | 130 |CtrlEND | 131 |
| Undo | 134 |⌘Z | 135 |CtrlZ | 136 |
| Redo | 139 |⌘Y 140 | ⌘ShiftZ |
141 | CtrlY 142 | CtrlShiftZ |
143 |
| 152 | | Mac | 153 |Windows/Linux | 154 |
|---|---|---|
| Toggle Command Palette | 159 |⌘P | 160 |CtrlP | 161 |
| Search commits | 164 |⌘F | 165 |CtrlF | 166 |
| Open repo via Command Palette | 169 |⌘ShiftO 170 | | CtrlShiftO 171 | |
| Search file to view history and blame | 174 |⌘ShiftH | 175 |CtrlShiftH | 176 |
| Focus the left panel filter bar | 179 |⌘OptionF | 180 |CtrlAltF | 181 |
| Open current repo in terminal | 184 |OptionT 185 | | AltT 186 | |
| Open current repo in File Manager | 189 |AltO 190 | | AltO 191 | |
| Open diff or merge tool | 194 |⌘D 195 | | CtrlD 196 | |
| Close current repo | 199 |⌘W 200 | | CtrlW 201 | |
| Search within file (if file content has focus) | 204 |⌘F 205 | | CtrlF 206 | |
| 215 | | Mac | 216 |Windows/Linux | 217 |
|---|---|---|
| Toggle Fullscreen Mode | 222 |Control⌘F 223 | | CtrlShiftF 224 | |
| Increase Zoom | 227 |⌘= 228 | ⌘+ |
229 | Ctrl= 230 | Ctrl+ |
231 |
| Decrease Zoom | 234 |⌘− | 235 |Ctrl− | 236 |
| Reset zoom | 239 |⌘0 | 240 |Ctrl0 | 241 |
| Toggle the left panel | 244 |⌘J | 245 |CtrlJ | 246 |
| Toggle the Commit Details panel | 249 |⌘K | 250 |CtrlK | 251 |
| Focus the search bar | 254 |⌘F | 255 |CtrlF | 256 |
| Focus the left panel filter bar | 259 |⌘OptionF | 260 |CtrlAltF | 261 |
| Close the current panel (if one is open) | 264 |Esc | 265 |Esc | 266 |
| 275 | | Mac | 276 |Windows/Linux | 277 |
|---|---|---|
| New Tab | 282 |CmdT 283 | | CtrlT 284 | |
| Close Tab | 287 |CmdW 288 | | CtrlW 289 | |
| Swap to Tab #1-9 | 293 |⌘#1-9 | 294 |Ctrl#1-9 | 295 |
| Jump to next open tab | 298 |⌘Tab | 299 |CtrlTab | 300 |
| Jump to previous open tab | 303 |⌘ShiftTab | 304 |CtrlShiftTab | 305 |