I decided to start with Git & Github for one of my existing project.
I started with creating a Github Repo with my account.
Mistake #1
I initiated the repo with Readme & .gitignore. Since I already have a project to publish to github, you should keep it blank or otherwise you will get error asking to pull first and that pulling will also fail due to history unmatch error, same as me :)
Initialize Git
First install git from https://git-scm.com/ and its better to install Powershell as well if not installed before. (Only for Windows users ๐)
Then open project folder in VSCode and click the third icon from the left menu called "Source Control" and click "Initialize Respository"
Terminal way.
Open VSCode and press Ctrl + `
to open integrated terminal. In my case its powershell.
Now type the following command.
> git init
Adding a Remote Server (Connect to Github)
Inside VSCode press CTRL+SHIFT+P
and type "Git Origin", Select the same from the list and add your Origin URL (ie github *.git URL)
The same can be done via terminal. See below.
$ git remote add origin https://github.com/user/repo.git
Once added you can commit your changes by clicking the "Tick Icon" in Source control Tab. When you are ready to push to github, click the 3 dots ... menu and choose "Push".
This is where I did wrong. As I already have an existing project but Github is initiated with Readme, it asks to pull first. When doing that it pops another error says the history is not matching.
If you got this error, please read Mistake #1 to avoid this later. For now, you can use the below code to overwrite it.
$ git pull origin master --allow-unrelated-histories
Git Stash & POP
This is useful when there are multiple people working on same project or working on multiple branches.
What Git Stash do is to save all of our working files in a temporary storage and revert to the original state. So that we don't lose our changes. From there you can pull latest and commit using Git Stash Apply or Pop.
When do you need this?
- When any other developer modified same files and you want to see / work on that updated files.
- When you mistakenly worked on X feature branch but should actually be Y feature branch.
Commands
$ git stash
// Stash current directory and revert to original
$ git stash save "message"
// save in a spearate stash (multiple stash)
$ git stash list
// See current stash
$ git stash apply
// Apply saved stash but keep the stash
$ git stash pop
// apply saved stash and delete
Then after these commands, you will be able to to pull / push as usual.
Some stackoverflow answers also mentions the use of --force
or -f
tag but if its in case of big project it might get messed up.
Git Checkout Branch
Branch is a powerful feature in git where you can make edits to a project without affecting the main source code.
Checkout existing branch
To checkout existing branch, use the following command
$ git checkout existing-branch-name
Creating new branch
To create a new branch, use the following command
$ git checkout -b new-branch-name
These commands will change the current working directory to your newly selected branch.
I will be adding more findings when I learn them, If you have any suggestions to improve my Git workflow, comment below.
Peace!
Top comments (2)
So true had similar issues too recently. Had to use the --f tag to push