You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 02_activities/assignments/git_assignment.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,9 +18,9 @@ In this assignment, you will be learning more about `git` and `GitHub` by workin
18
18
19
19
> b. What is a _pull request_?
20
20
21
-
> c. How do I open up a _pull request_?
21
+
> c. Describe the steps to open a _pull request_?
22
22
23
-
> d. Give me a step by step guide on how to add someone to your repository.
23
+
> d. Describe the steps to add a collaborator to a repository (share write permissions)
24
24
25
25
> e. What is the difference between `git` and `GitHub`?
26
26
@@ -50,7 +50,7 @@ Feel free to at any point (recommended after answering every 2 questions) to sta
50
50
🚨 **Please review our [Assignment Submission Guide](https://github.com/UofT-DSI/onboarding/blob/main/onboarding_documents/submissions.md)** 🚨 for detailed instructions on how to format, branch, and submit your work. Following these guidelines is crucial for your submissions to be evaluated correctly.
51
51
52
52
### Submission Parameters:
53
-
* Submission Due Date: `11:59 PM - 28/04/2024`
53
+
* Submission Due Date: `2024-08-25 - 23:59`
54
54
* The branch name for your repo should be: `assignment`
55
55
* What to submit for this assignment:
56
56
* The mentioned markdown file above (README.md) should be populated with what we have asked for and should be the only change in your pull request.
Version control is a system that records changes to a file or a set of files over time so that we can recall a specific version later. We may already do this by copying files to another directory to save past versions.While it is simple, it lacks flexibility and complexity.
39
+
#### What is Version Control?
40
+
Version control is a system:
41
+
* that records changes to a file or a set of files over time
42
+
* that enables recall a specific version
36
43
37
-
---
38
-
Version Control Systems (VCS) can do a number of things and can be applied on nearly any type of file on our computers:
39
-
- revert files to a previous state
40
-
- revert entire project to a previous state
41
-
- compare changes over time
42
-
- see who modified something last
43
-
- who introduced an issue and when
44
-
- recover lost files
44
+
We may already do this by copying files to another directory to save past versions. While it is simple, it lacks flexibility and complexity.
45
45
46
46
---
47
-
##### Local Version Control Systems
48
-
Local VCSs were developed to keep track of changes to our files by putting them in a version database.
49
-
50
-

51
-
52
-
---
53
-
##### Centralized Version Control Systems
54
-
Centralized VCSs (CVCS) were developed to enable collaboration with developers on other systems. CVCSs have a single server that contains all the versioned files.
55
-
56
-

57
-
58
-
---
59
-
CVCSs allow some level of transparency to others' work and give Administrators a level of control over what developers can and can't do.
60
-
61
-
Unfortunately, a single server means that if it ever goes down, all collaboration halts for however long that lasts for. Additionally, if backups haven't been kept, work could easily be lost.
47
+
#### Why version control?
48
+
Version Control Systems (VCS) can do a number of things and can be applied on nearly any type of file on our computers:
49
+
* revert files to a previous state
50
+
* revert entire project to a previous state
51
+
* compare changes over time
52
+
* see who modified something last
53
+
* who introduced an issue and when
54
+
* recover lost files
62
55
63
56
---
64
-
##### Distributed Version Control Systems
65
-
To handle the limitations of LVCSs and CVCSs, Distributed VCSs were created. This includes Git, Mercurial and Bazaar.
57
+
#### Why specialized version control for software teams?
58
+
* Robust software is documented as it is written
59
+
* Log changes and reasoning for why changes are made
60
+
* Working in teams requires code-specific version control
61
+
* Changing one part of a code project can affect behaviour in seemingly unrelated features
62
+
* In-progress state of one component can render the entire program temporarily unusable (e.g. syntax error)
66
63
67
-
Collaborators mirror the entire repsoitory, therefore if a server dies, any one of the collaborators' repositories can be copied back to the server to restore it.
68
-
69
-
---
70
-

71
64
72
65
---
73
66
@@ -80,22 +73,25 @@ Questions?
80
73
## `Git`
81
74
82
75
---
83
-
#####Git Basics
84
-
Git thinks of data in a very different way than other VCSs. Instead of storing a set of files and the changes over time, Git thinks of its data more like a set of snapshots of a mini file system.
76
+
### Git Basics
77
+
Git is the most common VCS in modern coding teams.
85
78
86
-
If files have not changed, Git does not store the file again, it links to the previous identical file already stored.
79
+
##### Git is efficient with storage
80
+
* Git stores snapshots of files in your project directory
81
+
* If files have not changed, Git does not store the file again, it links to the previous identical file already stored.
87
82
88
83
---
89
-

84
+
85
+

90
86
91
87
---
92
-
##### Local Operations
88
+
##### Git can operate locally
93
89
Most operations on Git only need local files and resources to operate. Git also keeps the entire history of our projects on our local disks meaning we can see changes made months ago without a remote server.
94
90
95
91
We also don't need to be connected to the server to get work done, rather we only need to be connected when we want to upload our work.
96
92
97
93
---
98
-
##### Benefits
94
+
##### Git assures integrity
99
95
Git uses a check-summing mechanism called *SHA-1 hash* which is calculated based on the contents of a file or directory structure in Git. It looks somehting like this:
0 commit comments