Use one command then another for connecting git to GitHub and doing all sorts of activities. I know it sounds extremely easy for a developer, but – this might take some time to practice for a manual tester or a newbie automation test engineer. We have multiple articles online available as well – However, none tell a basic step-by-step process. Hence, I am writing this article to go through the commands for working on a project with git and Github
Read more
Prerequisite:
- Git installed on your Mac / Windows. – More information here
- GitHub account and repo created – More information here
NOTES:
- GITHUB main branch can be called “main” or “master”
- You can also learn more about Git and Github by clicking on the links
- HEAD = Current branch/working directry
- In eclipse you can import the files from git directly to the IDE . Adding small detail below
Import projects from Git with smart import: Click File > Import. In the Import window, click Projects from Git (with smart import) and click Next. In the Select Repository Source window, click Existing local repository or Clone URI. Step through the wizard and click Finish for the wizard to analyze the content of the project folder to find projects for import and import them in the IDE. Result: The imported project is listed in the Project Explorer view.
Steps
- Open a folder in your local system which you want to move to github
- Open CLI in your system, Navigate to the folder you want to use for git
- In cli type “git init“. This will initialise git in that file and make it your “working directry”
- you can directly connect to your remote github “git remote add origin <server>” (NOTE: First time password = personal access token from github – get it from Github -> Settings -> Developer settings -> “Personal access tokens” -> select “repo” checkbox -> generate token -> copy)
- Clone the remote file to your local working copy by git clone username@host:/path/to/repository (get the ssh path from github)
- Now you have the main project file in your system. But you need to work on a branch to avoid conflicts and hence can create a branch for yourself by “git checkout -b <newbranchname>. // this checkout and creates a new branch for you to work on
- To list all the branches you can use “git branch”
- Now make some changes on the folder file you cloned and all the changes will be on this branch
- Now add the changes to the staging environment by “git add *” you can also add some file changes by “git add <filename>“
- Now type “git status” . This will show changes added to staging ready to be commited and will state all the changes not yet added to staging and might have been done before staging
- Now commit the changes to the local repo by “git commit -m “new changes” -m is for adding the message for commit for letting any person identify the changes
- Now push the changes to the main repo by “git push origin <newbranchname” – All changes will be pushed to the new branch and new branch be created in github
- To pull the changes you can type “git pull origin <newbranchname>” //means git pull from origin which is this new branch name //NOTE – remember to checkout to this branch before pulling changes for your IDE system to start working on this branch “git checkout <branchname>”
- Now checkout to the master inside your local repo by “git checkout master”
- Merge the new branch with this “git merge <newbranchthatwas created>
- To know which branch you are on -type “git branch”
- If you have done commit but the code is not working at all don’t panic and hit the following commands -This will fetch the latest history from the server and point your local master branch at it
git fetch origin git reset --hard origin/master
For a snapshot of the code you can visit here which I am copying below as well
it task | Notes | Git commands |
---|---|---|
Tell Git who you are | Configure the author name and email address to be used with your commits.Note that Git strips some characters (for example trailing periods) from user.name . | git config --global user.name "Sam Smith" git config --global user.email [email protected] |
Create a new local repository | git init | |
Check out a repository | Create a working copy of a local repository: | git clone /path/to/repository |
For a remote server, use: | git clone username@host:/path/to/repository | |
Add files | Add one or more files to staging (index): | git add <filename> git add * |
Commit | Commit changes to head (but not yet to the remote repository): | git commit -m “Commit message” |
Commit any files you’ve added with git add , and also commit any files you’ve changed since then: | git commit -a | |
Push | Send changes to the master branch of your remote repository: | git push origin master |
Status | List the files you’ve changed and those you still need to add or commit: | git status |
Connect to a remote repository | If you haven’t connected your local repository to a remote server, add the server to be able to push to it: | git remote add origin <server> |
List all currently configured remote repositories: | git remote -v | |
Branches | Create a new branch and switch to it: | git checkout -b <branchname> |
Switch from one branch to another: | git checkout <branchname> | |
List all the branches in your repo, and also tell you what branch you’re currently in: | git branch | |
Delete the feature branch: | git branch -d <branchname> | |
Push the branch to your remote repository, so others can use it: | git push origin <branchname> | |
Push all branches to your remote repository: | git push –all origin | |
Delete a branch on your remote repository: | git push origin :<branchname> | |
Update from the remote repository | Fetch and merge changes on the remote server to your working directory: | git pull |
To merge a different branch into your active branch: | git merge <branchname> | |
View all the merge conflicts:View the conflicts against the base file:Preview changes, before merging: | git diff git diff --base <filename> git diff <sourcebranch> <targetbranch> | |
After you have manually resolved any conflicts, you mark the changed file: | git add <filename> | |
Tags | You can use tagging to mark a significant changeset, such as a release: | git tag 1.0.0 <commitID> |
CommitId is the leading characters of the changeset ID, up to 10, but must be unique. Get the ID using: | git log | |
Push all tags to remote repository: | git push –tags origin | |
Undo local changes | If you mess up, you can replace 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. | git checkout — <filename> |
Instead, to drop all your local changes and commits, fetch the latest history from the server and point your local master branch at it, do this: | git fetch origin git reset –hard origin/master | |
Search | Search the working directory for foo() : | git grep "foo()" |
Hope so you liked the article and the git commands now seem easy to you. If so, don’t forget to like, share and comment on the article. Till next time.. tada…and Happy testing as always 😀
Interested to learn More? - Visit these links