What is Gitlab
Why use Gitlab
Installation
Basic Configuration
git config --global user.name "darin"
git config --global user.email [email protected]
git config --list
Creating Repository
mkdir darin-project
cd darin-project
git init .
or
git init /path-to-dir/directory
git [email protected]:darinvhs/reponame.git
cd reponame
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
Push an Existing Git Repository
cd existing_repo
git remote rename origin old-origin
git remote add origin [email protected]:darinvhs/reponame.git
git push -u origin --all
git push -u origin --tags
About .gitignore
.gitignore is a file that contain list name of files/directories that will be ignored by Git.
Any changes that we make to those file will be not recorded by Git.
How to use .gitignore, just create a file called .gitignore in the project/repository root directory.
cat > .gitignore
/folder1/
/folder2/
Git Modification
There is three condition of files in Git.
1. Modified -> revision (adding/removing files) has been done.
2. Staged -> revision has been marked by git add.
3. Commited -> revision has been saved in version control using git commit.
touch file{1..3.txt}
git add .
git commit -m "adding 3 files to repository"
git push origin master
Git Logging and Different
git log
git log --oneline
git log filename
git log --autoher="darinvhs"
git diff [revision-number]
git diff [filename]
git diff [commit-number] [commit-number]
git diff [branch-name] [branch-name]
Git Revert / Cancel Revision
If modification is not yet staged/commited,
we can cancel the modification using this command :
git checkout filename.
If modification is staged,
we can cancel the modification using this command :
git reset filename *change to modified first
git checkout filename
If modification is commited,
First you need to know commit number using git log
$ git log filename
commit xxxxxxxxxxxxxxxxxxxxx
commit yyyyyyyyyyyyyyyyyyyyy
commit zzzzzzzzzzzzzzzzzzzzz
After that revert to specific commit using below command :
git checkout zzzzzzzzzzzzzzzzzzzzz filename *will be in staged state.
git reset filename
Other command :
git checkout HEAD~X filename
git revert -n [commit-number]
Git Branch
#list branch
git branch
darin
* master
#create new branch
git branch developer01
git checkout developer01
git branch
darin
master
* developer01
git checkout master
git merge developer01
More details can be found at this link : https://www.petanikode.com/git-branch/
Checkout, Reset, Revert
Git checkout : returns the file in the previous condition, but is temporary.
Git reset : return the file to its previous condition, then delete the next commit history record.
Git revert : restores files by not erasing the commit history.
Working With Remote Repository
git remote
git remote add [remote-name] [url-remote.git]
git remote -v
git remote rename [old] [new]
git remote [remote-name]
git push [remote-name] [branch] #send revision to remote repository
https -> https://github.com/darinvhs/learning.git (password)
ssh -> [email protected]:darinvhs/learning.git (key)
Rebase
git checkout master
git pull
git checkout feat/branch
git rebase master
git push --force