♣ Due Date: Monday Sep 18, 2017 9:00 AM. This homework aims at giving you some experience on how to create Git branches, develop your project on multiple branches, merge them, resolve potential conflicts between different branches upon merging, and finally how to delete them. It also gives you some experience with using other commonly-used Git commands.
First, use the following Markdown language references, or any other reference that you find or prefer, to design a Github-interpretable README file for each of folders in your project for this course, and a Github web-page for your project.
- Markdown language cheat-sheet (pdf)
- Markdown language reference (web)
- Adam Pritchard’s Markdown cheat-sheet (web)
Write your code sections of your answer in Markdown syntax.
$ git branch -d test
error: Cannot delete branch 'test' checked out at 'C:/Users/Amir/git/foo'
will display the following text highlighted as bash code, in your readme.md file.
$ git branch -d test error: Cannot delete branch 'test' checked out at 'C:/Users/Amir/git/foo'
1. Include the following information with the following format and information in your main directory
Beginning of the README file’s content
ICP2017F - Introduction to Computer Programming (Fall 2017)
Name: <first name> <last name>
UT EID: <your UT EID>
Email: <your email>
Department: Department of Aerospace Engineering and Engineering Mechanics
University: The University of Texas at Austin
Level: Undergraduate - <Freshman(1st year) / Sophomore(2nd year) / Junior(3rd year) / Senior(4th year)>
ICP Class Position: Student
Course Webpage: https://www.shahmoradi.org/ICP2017F/
Description of the project’s content
This repository contains my homework, quizzes, and virtually every effort that I have made for ICP2017F class. The structure of the project is the following:
- homework: (the homework hyperlink should take the reader to the homework folder)
This directory contains all my homework submissions, each of which is a folder properly named with homework number, containing the homework submission.
- quiz: (the quiz hyperlink should take the reader to the quizzes folder)
This directory contains all my quiz submissions, each of which is a folder properly named with quiz number, containing the quiz submission.
- exam: (the exam hyperlink should take the reader to the exams folder)
This directory contains all my exam submissions, each of which is a folder properly named with exam name or number, containing the exam submission.
For questions and troubleshooting, please contact:
<any other contact or signature information that you would like to add>
I have not failed. I’ve just found 10,000 ways that won’t work.
Thomas A. Edison
End of the README file’s content
2. Create two additional test branches in your project, each of which is branched directly from master. For each of the following cases, write the command and the corresponding output message of Git, in Markdown language in a
readme.md file inside your
homework/1/ folder in your master branch. If you don’t have this folder in your project, then create the folder and then place your initial
readme.md file in this folder with your signature as the content of the file. Then stage and commit this file together with homework-1 folder to your local repository. Throughout the rest of this homework, you will fill this
readme.md file with your answers.
(A) Create two branches, both from your master branch, with names test1 and test2.
(B) Now checkout the test1 branch and create a new text file named
test.txt in the
homework/1/ directory of this branch.
test.txt in test1 branch write this message: This is some example text for branch test1, and save it.
(D) Now stage and commit
test.txt file to branch test1.
(E) Checkout the branch test2. Do you still see
test.txt that you just created in your
homework/1/ directory? You can search for it by the bash command
ls. Explain why you see/don’t see the file in your working directory anymore.
(F) Create a new text file named
test.txt in the
homework/1/ directory of this branch as well, and add This is some example text for branch test2 to its content.
(G) Now try to checkout test1. What error/warning message do you get? Fix the source of error and then checkout test1 branch.
(H) Now merge the content of test1 with master branch. (Hint: Note from which branch you doing this merge!)
(I) Now what do you see as the content of master branch? (Hint: Use
ls bash command, to list the files in the working directory.)
(J) Now merge the content of test2 with master branch. What error/warning message do you get? Why does this error arise?
(K) Now checkout test2. What error/warning message do you get?
(L) Run the Git command
git status. Why does such a conflict exist, as mentioned in
git status output?
(M) At this stage, you have two options: Either 1. stage and commit the combined conlifting
test.txt file to Git repository (but this is not recommended), or, 2. open the file
test.txt using vim editor on the command line and reslve the conflict by editing the content of the file to only this sentence: . Then save and quit *vim.
(N) Now, run
git status, then stage and commit your conflict-resolved file. Then checkout test2 branch.
(O) Now, try deleting branch test1, while on branch test2. What error/warning message do you get?
(P) Now, switch back to master branch. Now, try deleting branch test1, while on master branch. What message do you get from Git? List all the existing branches using
git branch command.
(Q) Why is there such a difference in Git messages between when you tried deleting test1 branch from test2 branch, and when you tried deleting test1 branch from master branch?
(R) Now checkout test2 branch. While on test2, try to delete branch test2. What error/message do you get?
(S) Switch back to master and delete test2 branch. List all your project branches by the appropriate Git command.
(T) Stage and commit all the changes (including the file
test.txt) to your project’s master branch. Now push it all to the remote repository by Wednesday Feb 15 2017, 9:00 a.m. CDT.
3. (Bonus, not mandatory) Design a simple Github page for your project, using the main directory’s
readme.md file. Submit the link to the page as your answer. Note that you don’t need to add anything extra to your readme file.
4. (Bonus, not mandatory) Create a gh-pages branch for your project from master branch, such that your project is accessible through its web address based on the content of gh-pages branch, not based on the content of master branch.