Git is a widely-used version control system for software development. We usually download the open source code from github.com or other repositories collector using git. For example, you want to download the pcduino8_uno_lib from github, you just type:
git clone https://github.com/pcduino/pcduino8_uno_lib
sudo apt-get install git-all
2. Create a new repository
3. Checkout a repository
Create a working copy of a local repository by running the command:
git clone /path/to/repository
when using a remote server, your command will be:
git clone username@host:/path/to/repository
4. add & commit
You can propose changes (add it to the Index) using
git add <filename>
git add *
This is the first step in the basic git workflow. To actually commit these changes use:
git commit -m "Commit message"
Now the file is committed to the HEAD, but not in your remote repository yet.
5. pushing changes
Your changes are now in the HEAD of your local working copy. To send those changes to your remote repository, execute:
git push origin master
Change master to whatever branch you want to push your changes to.
If you have not cloned an existing repository and want to connect your repository to a remote server, you need to add it with:
git remote add origin <server> Now you are able to push your changes to the selected remote server.
6. update & merge
to update your local repository to the newest commit, execute:
in your working directory to fetch and merge remote changes. to merge another branch into your active branch (e.g. master), use:
git merge <branch>
in both cases git tries to auto-merge changes. Unfortunately, this is not always possible and results in conflicts. You are responsible to merge those conflicts manually by editing the files shown by git. After changing, you need to mark them as merged with:
before merging changes, you can also preview them by using:
git diff <source_branch> <target_branch>
7. replace local changes
In case you did something wrong, which for sure never happens ;), you can replace local changes using the command:
git checkout -- <filename>
this replaces the changes in your working tree with the last content in HEAD. Changes already added to the index, as well as new files, will be kept.
If you instead want to drop all your local changes and commits, fetch the latest history from the server and point your local master branch at it like this:
git fetch origin git reset --hard origin/master