25,172 views
This is a lecture video series for Tokyo Institute of Technology's "System Development Project Application 1." Playlist → • Learn modern development tools and methods This time, we will introduce version control systems. We will mainly explain the operations and data model of Git. We will create a local repository, clone a repository, and try push/pull. By understanding the relationship between the work tree, index, and HEAD, we will gain a deeper understanding of the behavior of the git reset command. We will provide a detailed explanation of the mechanism of 3-way merge and the behavior of rebasing. 00:00 What is version control?12:25 Basic git commands (start here if you don't want to go through the intro)16:10 git diff17:45 git log, git log --graph --all19:46 Worktrees and indexes21:18 git diff, git diff --cached22:35 git add -p and hunks27:16 Commit objects and branches29:39 HEAD31:44 Tags32:28 git checkout34:32 When to use Detached HEAD40:10 git branch, git checkout -b43:44 Merging, 2-way merging, 3-way merging50:02 Conflicts53:15 git merge --no-ff56:22 git cherry-pick57:57 git rebase1:01:00 Revising history1:04:50 git rebase -i 1:06:02 git commit --amend 1:08:35 git reset 1:14:14 Work tree, index, and HEAD state transitions 1:15:40 git stash 1:22:35 Commit granularity and commit messages This lecture was offered in 2020 at the Department of Computer Science, Tokyo Institute of Technology. The theme of this lecture in 2020 is to learn about modern development tools and methods used in actual system development projects. Choosing the right tools and methods makes software development efficient and enjoyable. The 2020 syllabus for "System Development Project Application I" is here: http://www.ocw.titech.ac.jp/index.php... The slides used in the lecture can be found in the "Lecture Notes" section of the syllabus.