git for version control and collaboration part 2 · # update git hub repository git push origin...
TRANSCRIPT
![Page 1: Git for version control and collaboration Part 2 · # Update Git Hub repository git push origin master . Branch 12 b a c e d f g master dev Git allows and encourages you to have multiple](https://reader033.vdocument.in/reader033/viewer/2022052717/5f04109c7e708231d40c24fe/html5/thumbnails/1.jpg)
Git for version control and collaborationPart 2
Katia Oleinik
Research Computing Services
![Page 2: Git for version control and collaboration Part 2 · # Update Git Hub repository git push origin master . Branch 12 b a c e d f g master dev Git allows and encourages you to have multiple](https://reader033.vdocument.in/reader033/viewer/2022052717/5f04109c7e708231d40c24fe/html5/thumbnails/2.jpg)
Outline
- Motivation- Using Git for version control- Collaboration using Git- GitHub and other remote repositories
2
![Page 3: Git for version control and collaboration Part 2 · # Update Git Hub repository git push origin master . Branch 12 b a c e d f g master dev Git allows and encourages you to have multiple](https://reader033.vdocument.in/reader033/viewer/2022052717/5f04109c7e708231d40c24fe/html5/thumbnails/3.jpg)
Remote repository
3
To publish repository to a GitHub (or other place):
1. Create a repository in GitHub
2. In your working directory run:
git remote add origin https://github.com/<gitHubID>/<repo>.git
git push -u origin master
![Page 4: Git for version control and collaboration Part 2 · # Update Git Hub repository git push origin master . Branch 12 b a c e d f g master dev Git allows and encourages you to have multiple](https://reader033.vdocument.in/reader033/viewer/2022052717/5f04109c7e708231d40c24fe/html5/thumbnails/4.jpg)
Collaboration
4
Create 2 directories - repo1 and repo2. In the first directory create a repo
job_example
mkdir repo1mkdir repo2
cd repo1git init job_examplecd job_example
![Page 5: Git for version control and collaboration Part 2 · # Update Git Hub repository git push origin master . Branch 12 b a c e d f g master dev Git allows and encourages you to have multiple](https://reader033.vdocument.in/reader033/viewer/2022052717/5f04109c7e708231d40c24fe/html5/thumbnails/5.jpg)
Collaboration
5
In the first directory (repo1/job_example) add a few file and make a commit. You
can copy the file from the examples directory:
cp /project/scv/examples/git/job_example/* .
Make an initial commit:
git add .git commit -m "Initial commit"
![Page 6: Git for version control and collaboration Part 2 · # Update Git Hub repository git push origin master . Branch 12 b a c e d f g master dev Git allows and encourages you to have multiple](https://reader033.vdocument.in/reader033/viewer/2022052717/5f04109c7e708231d40c24fe/html5/thumbnails/6.jpg)
Collaboration
6
Create a remote repository on GitHub.
We will be updating this repository from 2
different directories we created.
![Page 7: Git for version control and collaboration Part 2 · # Update Git Hub repository git push origin master . Branch 12 b a c e d f g master dev Git allows and encourages you to have multiple](https://reader033.vdocument.in/reader033/viewer/2022052717/5f04109c7e708231d40c24fe/html5/thumbnails/7.jpg)
Collaboration
7
# In repo1:git remote add origin https://github.com/<yourID>/job_example.gitgit push -u origin master
# In repo2:https://github.com/katgit/job_example.gitcd job_example
# To differentiate between 2 repositories, let’s change a local user-namegit config --local user.name "Some Alias"
![Page 8: Git for version control and collaboration Part 2 · # Update Git Hub repository git push origin master . Branch 12 b a c e d f g master dev Git allows and encourages you to have multiple](https://reader033.vdocument.in/reader033/viewer/2022052717/5f04109c7e708231d40c24fe/html5/thumbnails/8.jpg)
Collaboration
8
# In repo2 modify job.qsubgit add job.qsubgit commit –m "modified job.qsub"
# Update Git Hub repository
git push origin master
# In repo1:
git pull origin master
![Page 9: Git for version control and collaboration Part 2 · # Update Git Hub repository git push origin master . Branch 12 b a c e d f g master dev Git allows and encourages you to have multiple](https://reader033.vdocument.in/reader033/viewer/2022052717/5f04109c7e708231d40c24fe/html5/thumbnails/9.jpg)
Resolving Conflicts
9
# In repo1 further modify job.qsub and then commit itgit add job.qsubgit commit –m "added project flag to job.qsub"
# Update Git Hub repository
git push origin master
![Page 10: Git for version control and collaboration Part 2 · # Update Git Hub repository git push origin master . Branch 12 b a c e d f g master dev Git allows and encourages you to have multiple](https://reader033.vdocument.in/reader033/viewer/2022052717/5f04109c7e708231d40c24fe/html5/thumbnails/10.jpg)
Resolving Conflicts
10
# In repo2 modify example.py file and then commit itgit add example.py git commit –m "added some calculations to example.py"
# Now try to push the changes to the GitHub repo:git push origin master ! [rejected] master -> master (fetch first)error: failed to push some refs to 'https://github.com/katgit/job_example.git'hint: Updates were rejected because the remote contains work that you dohint: not have locally. This is usually caused by another repository pushinghint: to the same ref. You may want to first integrate the remote changeshint: (e.g., 'git pull ...') before pushing again.hint: See the 'Note about fast-forwards' in 'git push --help' for details.
![Page 11: Git for version control and collaboration Part 2 · # Update Git Hub repository git push origin master . Branch 12 b a c e d f g master dev Git allows and encourages you to have multiple](https://reader033.vdocument.in/reader033/viewer/2022052717/5f04109c7e708231d40c24fe/html5/thumbnails/11.jpg)
Resolving Conflicts
11
# In the repo where you got this errors (repo2) pull the updates from GitHub:
git pull origin master
If 2 different files were modified, git will resolve the conflict and will open an editor
to record a commit message
# Update Git Hub repository
git push origin master
![Page 12: Git for version control and collaboration Part 2 · # Update Git Hub repository git push origin master . Branch 12 b a c e d f g master dev Git allows and encourages you to have multiple](https://reader033.vdocument.in/reader033/viewer/2022052717/5f04109c7e708231d40c24fe/html5/thumbnails/12.jpg)
Branch
12
b
a
ce
d
f
g
master
dev
Git allows and encourages you to have
multiple local branches that can be
entirely independent of each other.
![Page 13: Git for version control and collaboration Part 2 · # Update Git Hub repository git push origin master . Branch 12 b a c e d f g master dev Git allows and encourages you to have multiple](https://reader033.vdocument.in/reader033/viewer/2022052717/5f04109c7e708231d40c24fe/html5/thumbnails/13.jpg)
Branch
13
b
a
ce
d
f
g
master
dev
Check all existing branchesgit branch
orgit branch --list
![Page 14: Git for version control and collaboration Part 2 · # Update Git Hub repository git push origin master . Branch 12 b a c e d f g master dev Git allows and encourages you to have multiple](https://reader033.vdocument.in/reader033/viewer/2022052717/5f04109c7e708231d40c24fe/html5/thumbnails/14.jpg)
Branch
14
Create a new branch "dev"git branch dev
Check existing branchesgit branch --list
Note: Creating a new branch does not make it current!
b
a
ce
d
f
g
master
dev
![Page 15: Git for version control and collaboration Part 2 · # Update Git Hub repository git push origin master . Branch 12 b a c e d f g master dev Git allows and encourages you to have multiple](https://reader033.vdocument.in/reader033/viewer/2022052717/5f04109c7e708231d40c24fe/html5/thumbnails/15.jpg)
Branch
15
Switch to a new "dev" branchgit checkout dev
Check existing branchesgit branch --list
b
a
ce
d
f
g
master
dev
![Page 16: Git for version control and collaboration Part 2 · # Update Git Hub repository git push origin master . Branch 12 b a c e d f g master dev Git allows and encourages you to have multiple](https://reader033.vdocument.in/reader033/viewer/2022052717/5f04109c7e708231d40c24fe/html5/thumbnails/16.jpg)
Branch Checkout
16
Use checkout verb to switch between
branches, i.e:git checkout <branch>
Each branch can be modified
independently
b
a
ce
d
f
g
master
dev
![Page 17: Git for version control and collaboration Part 2 · # Update Git Hub repository git push origin master . Branch 12 b a c e d f g master dev Git allows and encourages you to have multiple](https://reader033.vdocument.in/reader033/viewer/2022052717/5f04109c7e708231d40c24fe/html5/thumbnails/17.jpg)
Merging Branches
17
b
a
ce
d
f
g
master
dev
First checkout to the "receiving" branch:git checkout master
Perform merge with the other branchgit merge dev
![Page 18: Git for version control and collaboration Part 2 · # Update Git Hub repository git push origin master . Branch 12 b a c e d f g master dev Git allows and encourages you to have multiple](https://reader033.vdocument.in/reader033/viewer/2022052717/5f04109c7e708231d40c24fe/html5/thumbnails/18.jpg)
Rebase
18
b
a
ce
d
f
master
devb
a
ce
d
f
master
dev
c'
d'
![Page 19: Git for version control and collaboration Part 2 · # Update Git Hub repository git push origin master . Branch 12 b a c e d f g master dev Git allows and encourages you to have multiple](https://reader033.vdocument.in/reader033/viewer/2022052717/5f04109c7e708231d40c24fe/html5/thumbnails/19.jpg)
Rebase
19
b
a
ce
d
f
master
dev
First checkout to the “development"
branch:git checkout dev
Perform rebasegit rebase master
Merging 2 branchesgit checkout mastergit merge dev
![Page 20: Git for version control and collaboration Part 2 · # Update Git Hub repository git push origin master . Branch 12 b a c e d f g master dev Git allows and encourages you to have multiple](https://reader033.vdocument.in/reader033/viewer/2022052717/5f04109c7e708231d40c24fe/html5/thumbnails/20.jpg)
Rebase vs. Merge
20
b
a
ce
d
f
master
dev
c'
d'
b
a
ce
d
f
g
master
dev
![Page 21: Git for version control and collaboration Part 2 · # Update Git Hub repository git push origin master . Branch 12 b a c e d f g master dev Git allows and encourages you to have multiple](https://reader033.vdocument.in/reader033/viewer/2022052717/5f04109c7e708231d40c24fe/html5/thumbnails/21.jpg)
Rebase vs. Merge
21
Do not rebase commits that exist outside your repository and people
may have based work on them!
The way to get the best of both worlds is to rebase local changes you’ve
made but haven’t shared yet before you push them in order to clean up your
story, but never rebase anything you’ve pushed somewhere.
![Page 22: Git for version control and collaboration Part 2 · # Update Git Hub repository git push origin master . Branch 12 b a c e d f g master dev Git allows and encourages you to have multiple](https://reader033.vdocument.in/reader033/viewer/2022052717/5f04109c7e708231d40c24fe/html5/thumbnails/22.jpg)
Pushing Branches to Remote
22
To push a branch to a remote repository
git push origin dev
List all remote repositories
git branch –l -r
(In repo2 ) Get a particular branch from remotegit fetch origin dev
Get all branches from remotegit fetch origin
git branch –l -r
![Page 23: Git for version control and collaboration Part 2 · # Update Git Hub repository git push origin master . Branch 12 b a c e d f g master dev Git allows and encourages you to have multiple](https://reader033.vdocument.in/reader033/viewer/2022052717/5f04109c7e708231d40c24fe/html5/thumbnails/23.jpg)
Git tools: Stashing
23
When you need to switch between the branches, but are not ready to push
the changes you can use stashing area:
# push changes to the stashing areagit stash
# list stashes
git stash list
Now you can switch branches and do other work.
![Page 24: Git for version control and collaboration Part 2 · # Update Git Hub repository git push origin master . Branch 12 b a c e d f g master dev Git allows and encourages you to have multiple](https://reader033.vdocument.in/reader033/viewer/2022052717/5f04109c7e708231d40c24fe/html5/thumbnails/24.jpg)
Git tools: Stashing
24
Once you are back to your master branch and are ready to continue your
work you can pull stashed files back:
# pull stashed file into your working areagit stash apply
![Page 25: Git for version control and collaboration Part 2 · # Update Git Hub repository git push origin master . Branch 12 b a c e d f g master dev Git allows and encourages you to have multiple](https://reader033.vdocument.in/reader033/viewer/2022052717/5f04109c7e708231d40c24fe/html5/thumbnails/25.jpg)
The End