msysGit is a windows version of Git client. Download this installation package and install it: https://github.com/msysgit/msysgit/releases/download/Git-1.9.5-preview20141217/Git-1.9.5-preview20141217.exe
use default configuration is OK. Just click "Next" button all the way to the end.
Open Git Bash from desktop (or any folder) by right click:
config your user name and email: (They should be the same with your git profile settings)
git config --global user.name "Shishang, Yilin" git config --global user.email "shishangyilin@cienet.com.cn"
Open Git Gui from start menu:
Click Show SSH Key:
There is no SSH key currently. Click Generate Key:
Git will promt to request you set a passphrase for your SSH key, but it is not necessary. Just click OK to leave it empty:
Select the whole SSH key text and click Copy To Clipboard:
Go to Gitlab Profile settings > SSH keys > Add SSH Key:
Paste your key here:
Click the "Title" input box, the title will be generated automatically:
Click Add Key and it is done:
Last Step: Test your SSH link to the git server to verify your key has been added correctly, open Git Bash and input:
ssh git@server_ip_address
Input yes and It's OK When you see Welcome to Gitlab, ...
You can clone the existing project repository to your local machine, so you can work on it.
First you need to get the source location like below project "first":
Create a new folder on your computer and open Git Bash:
Clone the source repository:
git clone git@54.65.75.141:shishangyilin/first.git
You can see the downloading information and wait until the clone is done:
After the clone is done, open Git GUI and select Open Existing Repository:
Browse to the repository folder that git clone created (It's in the folder which you created):
Click Open And this is your project workspace, you can commit/checkout/merge changes here:
Git Pull command is used to update your local repository with the latest version of source repository, it will also merge your local changes with the fetched source repository changes automatically.
First, create a quick access tool in Git GUI:
The command is git pull:
Then you can simply click the git pull tool to update the repository:
You can see the details like how many changes updated in the message window:
Git Push is used to commit your changes to source repository. Before you start your change, it's better if you pull the changes from source repository first. After you finish your code change, open Git GUI and press F5 to refresh the unstaged changes:
You can see the files list of your change on the left, and click on one file you can see the code diff on the right. Here you can examine your change and when it's ready, select the file you need to commit and click Stage To Commit or press Ctrl + T:
Then the file will be moved from the red zone Unstaged Changes to the green zone Staged Changes (Will Commit). Note: Only the staged changes will be commited. In the Commit Message, input your comments on this commit. You can refer to the issue related to this commit with a #1 (the issue number) and the issue will be connected and closed by the commit. Click Commit when you are done:
After commit, you need to push the changes to the source repository, click Push and confirm it:
You can see the push details if it succeeded:
In the above example, we refered the #1 issue so the issue has been connected to this commit and closed:
When your change conflicts with the source repository, Git pull or push will fail:
If you failed on pull and your changes has not been commited, commit them:
If you has commited your changes and failed on push, click Remote > Fetch from > origin:
Then click Merge > Local Merge or press Ctrl + M:
Select the branch you want to merge into and click Merge:
If there is no conflicts, the merge will complete automatically.
Then you can skip the following steps on conflict-resolving, just commit the merge changes and push to source repository according to the instructions after conflict-resolving.
If there are conflicts, the merge will fail:
In Git GUI you can see the conflict file details. HEAD means your current branch status, origin/master is the source repository branch which you are merging into:
Edit the conflict file, remove the auto-generated notes and merge the changes by editing:
Commit the merge changes:
Push to source repository:
Success!
In the project network view, you can see the merge on two parallel commits: