GIT Plugin/en

From expecco Wiki (Version 2.x)
(Redirected from GIT Plugin)
Jump to navigation Jump to search

Introduction[edit]

The plugin provides git-functionality for testsuites.

Precondition[edit]

For proper work you need a remote-repository and access to it without entering user name and password. For configuration you have to set user name and mail-address in the expecco-configuration (see Settings GitSettings/en).

The git-functionality will not work, if you use sub-directories in your project. The .git-directory must be in the same directory as your files of the testsuites.

In Case of an Error[edit]

Before executing a git-command, that affects your testsuite-files, a copy of these files will be created. They become the suffix "<testsuite>.last.sav".


Initialization[edit]

Clone[edit]

Provides the functionality of 'git clone': Cloning a repository into a a new local directory. A dialog boxes ask for the url of the remote repository and the root directory of your projects.

 Executed git-command: git clone <repository-url>.


Adding and Committing[edit]

Add[edit]

Before you can commit your new or changed testsuite, you have add the file to the git index.

 Executed git-command: git add <testsuite>.

Unstage[edit]

Removes an added testsuite from index. It is still modified, but not destined for commit.

 Executed git-command: git reset HEAD <testsuite>

Add All and Commit...[edit]

Adds all modified files and commits them in one step. You will be asked for entering a commit message. An empty commit message is not allowed.

 Executed git-command: git commit -a -m "<commit message>"

Commit..[edit]

Commits all added files. A message-box will appear to enter the commit message. An empty commit message is not allowed.

 Executed git-command: git commit -m "<commit message>"

Commit (amend)[edit]

Replace the tip of the current branch by creating a new commit with a new commit message. The new commit has the same parents and author as the current one.

You should understand the implications of rewriting history if you amend a commit that has already been published!

 Executed git-command: git commit --amend.

Discard changes in working directory[edit]

Discards the changes since the last commit. Attention: Your changes are lost!

If you get conflicts by changing the branch, because of uncommitted changes in some of your files, you can discard or commit your changes.

 Executed git-command: git checkout -- <testsuite>.


Branches[edit]

Create Local Branch...[edit]

Creates a new local branch with a given name.

 Executed git-command: git checkout -b <branch>.

Delete Local Branch...[edit]

Deletes a local branch.

The branch must be merged into the current branch. Otherwise the deletion will be refused.

 Executed git-command: git branch -d <branch>.
 

Checkout Branch...[edit]

Checks out a branch. In a dialog box you can choose the desired branch.

If you have uncommitted changes, git rejects the checkout of the new branch. You can discard or commit your changes (see above) and try again.

 Executed git-command: git checkout <branch>.

Push[edit]

To publish your commits to the remote-repository you have to push it.

 Executed git-command: git push.

Pull[edit]

Incorporates changes from the remote repository into the current branch.

Because automatically merge by git isn't possible in any case, you can get merge-conflicts. To avoid this, better use Merge.

If you get unresolvable conflicts, you can reset the files wit Merge Abort after Conflict and try again with Merge.

 Executed git-command: git pull.


Comparing and merging[edit]

Fetch[edit]

Downloads objects and refs from the remote repository, but don't change the local files.

 Executed git-command: git fetch.


Merge[edit]

Merges with HEAD of the current branch. (Only possible on remote-branches.)

You get the newest version of the current branch from the repository with the changes done by others. If there exists differences that cannot merged automatically between the two version the Expecco-ProjectDifferenceBrowser will open and you can take over your changes.

 Executed git-command: git fetch                   
                       git merge      

Merge with Branch...[edit]

Merges the contents from another branch, you select in a dialog box, to your testsuites.

 Executed git-command: git fetch
                       git merge <branch>

Merge Commit[edit]

You can finish a manually merge with a final 'Merge Commit. You maybe override changes from others.

This functionality you doesn't need usually. It is integreted in the merge commands above.

 Executed git-command: git commit -a --no-edit

Merge Abort after Conflict[edit]

If you have unresolvable conflicts after pulling, you can abort the merge. You can retry the merge with Merge.

 Executed git-command: git merge --abort


Informations[edit]

Show Log[edit]

Displays a dialog box with the commit log of the current branch.

 Executed git-command: git log

Show Status[edit]

Shows the working tree status.

 Executed git-command: git status

Current state in the window status line[edit]

After every git command, the state of then working tree will be displayed in the status line of the expecco window.

State[edit]

  • added: new file added.
  • modified: file modified, not added
  • staged: file modified and added
  • deleted: file deleted
  • renamed: file renamed
  • unmerged: file not merged
  • unknown: new file, not added
  • ignored: file ignored (settings in .gitignore)

Branch[edit]

  • name of the branch
  • ahead: your working copy is ahead the remote copy: you can push your commits.
  • behind: your working copy is behind the remote copy. You can pull to get the changes.
  • ahead / behind: your branch has deverged. You have to merge.



Not implemented[edit]

  • Use of the git-stash command.



Copyright © 2014-2018 eXept Software AG