Workflow Using SmartGit
Posted by: Mondele

Forking/Branching Workflow

Before beginning this procedure, it is a good idea to remove all copies of the repository from your computer. If you are concerned you might lose something, you can alternately move all copies of the repository to a backup location where they will not be confused with the working copy.


For this tutorial the ULB repository will be used as an example.

  1. Fork the ULB repository on DCS (
  2. Clone the official ULB repository to your computer.
    git clone -v --progress C:\Users\Phil\Projects\en_ulb
  3. Add your fork as a new remote named “myfork”.


  1. Commit all changed files.
    git commit -am "Description of the change"
  2. Pull the latest master branch from DCS.
    1. Click “Pull”
    2. Check “Fetch from all remotes”
    3. Click “Pull”
      git fetch --all
      git pull
  3. Switch to the master branch if it is not already checked out.
    git checkout master
  4. Add a new branch.
    1. Select “Branch”
    2. Select “Add Branch”
    3. Type new branch name such as “working”
    4. Click “Add Branch & Checkout”
      git checkout -b working
    5. Right-click “myfork” in Branches pane
    6. Select “Push to”
    7. Select “myfork” in the Target Repository dropdown
    8. Click “Push”
      git push -u myfork working
  5. Make your changes. Note: you can add the new branch any time before the changes are committed.
  6. Commit changes to the new branch.
    git commit -am "Description of the change"
  7. Push the branch to “myfork” not “origin.”
    1. Right-click “myfork” in Branches pane
    2. Select “Push to”
    3. Click “Push”
      git push
  8. Create a Pull Request on DCS in the master ULB repository to merge your branch into the master branch.
    1. Switch to your fork on DCS in web browser
    2. Select “Pull Requests” tab
    3. Click “New Pull Request(?)”
    4. Add pull request message
    5. Click “Pull Request”
  9. Ask someone to review your Pull Request.
  10. The person who reviews and approves the Pull Request will merge it.
  11. Delete your branch, locally and from DCS, after it has been merged. This is not required, but it keeps the Branches pane free of clutter.
    1. Right-click on the branch name under “Local Branches” in the Branches pane. Do not delete the branch named “master.”
    2. Check both boxes in the dialog that pops up, “Delete tracked branch” and “Delete from remote.”
    3. Click the Delete button.
      git checkout master
      git branch -d working
      git push myfork --delete working
      git fetch --all
      git pull

Manual and Hard Reset of a Translation Project

This is a work-around for the error message of "Cannot upload due to unexpected history" It is what I call "Manual and hard reset." I got to using it when another method failed me in a particular situation some time back. 1. Delete the repo of the 'troublesome' book...

Ad Hoc Network

At some events it may be useful to create an ad-hoc Wi-Fi network. An ad-hoc network is an isolated network, and it is usually created by a computer or similar device, rather than by a Wi-Fi router. You can think of it as a Hotspot without an Internet connection. At a...

Visa requirements per country on passthrough based on experience.

-Visa requirements for countries when just in transit: - Taiwan.   A Valid US passport will allow you to pass through the airport - Korea.    A Valid US passport will allow you to pass through the airport - Japan. A Valid US passport will allow you to pass through the...

Adding a Footnote to the Bible Text

The English Unlocked Literal Bible has footnotes. Footnotes are used to alert the reader about any textual variant information in that section of the Bible text.Footnotes are used to: Explain when there are proper names, words or terms that differ between various...

How to Prepare OBS Projects for Publishing

  This article is one in a series of articles describing how to get a GL project ready to publish so that others can benefit from it. This article deals with Open Bible Stories (OBS) projects created in translationStudio. A complete OBS project uploaded from tS...

Error Creating Backup

Sometimes a project will become corrupted, resulting in the following error message: This solution may be particularly helpful if this error is seen when starting translationStudio. Sometimes, this error is caused by a problem with the git project that stores change...

Translate Content Online

Overview If you want to translate a project online, you may do so by using the Door43 Content Service.  Note that you will need to have a basic knowledge of Markdown or USFM formatting, depending on the project. Step by Step The following procedure assumes that you...

More Visa requirement tips

In Congo, Brazzaville, I was expected to have a transit visa, but did not. They allowed me to buy one there — $40, if I'm not mistaken. However, they then connected me with one of their "baggage handlers" who shook me down for more money. My advice is to get the visa...

Update Options

There are four options to choose from when updating. NOTE: Updating requires an Internet connection. Update List of Available Source Texts Click on this option to upload a list of the available source texts. NOTE: this update will only update the list of available...

Problem Uploading from translationStudio to Door43

Sometimes an upload to Door43 from translationStudio fails. When this happens, there are several things to check. 1. Is the user logged in? It is possible to be logged in as a local user, but forget this when it's time to upload. 2. Is the Internet connection good?...