diff options
Diffstat (limited to 'usth/ICT2.7/P1L4 Version Control Subtitles/13 - GIT Demo: Intro to Git - lang_en_vs5.srt')
-rw-r--r-- | usth/ICT2.7/P1L4 Version Control Subtitles/13 - GIT Demo: Intro to Git - lang_en_vs5.srt | 1095 |
1 files changed, 0 insertions, 1095 deletions
diff --git a/usth/ICT2.7/P1L4 Version Control Subtitles/13 - GIT Demo: Intro to Git - lang_en_vs5.srt b/usth/ICT2.7/P1L4 Version Control Subtitles/13 - GIT Demo: Intro to Git - lang_en_vs5.srt deleted file mode 100644 index d3b3a24..0000000 --- a/usth/ICT2.7/P1L4 Version Control Subtitles/13 - GIT Demo: Intro to Git - lang_en_vs5.srt +++ /dev/null @@ -1,1095 +0,0 @@ -1 -00:00:00,120 --> 00:00:02,170 -In this first part of the git demo, we will - -2 -00:00:02,170 --> 00:00:05,080 -call it the basics of git. So for example, how to - -3 -00:00:05,080 --> 00:00:08,280 -introduce yourself to git, how to create a repository, how to - -4 -00:00:08,280 --> 00:00:12,450 -commit changes and get changes from the repository, and so on. - -5 -00:00:12,450 --> 00:00:15,140 -So after you installed git you should have the git tool - -6 -00:00:15,140 --> 00:00:18,150 -available on the command line, so you can run the command - -7 -00:00:18,150 --> 00:00:21,110 -git and, if you just execute git you will get the - -8 -00:00:21,110 --> 00:00:25,930 -usage information for git, with the most commonly used git commands. - -9 -00:00:25,930 --> 00:00:28,940 -And to find information on any command, you can simply - -10 -00:00:28,940 --> 00:00:32,310 -type git help and the name of the command. For - -11 -00:00:32,310 --> 00:00:35,240 -example, lets try to write git help init. And that - -12 -00:00:35,240 --> 00:00:38,960 -brings up the git manual page for git init, which describes - -13 -00:00:38,960 --> 00:00:41,590 -the command, the synopsis, and so on. Now, lets get - -14 -00:00:41,590 --> 00:00:45,970 -started with using git by introducing ourselves to git, which is - -15 -00:00:45,970 --> 00:00:47,830 -the first thing we need to do. To do that - -16 -00:00:47,830 --> 00:00:51,310 -we use the git config command, in particular we are going to - -17 -00:00:51,310 --> 00:00:54,170 -write to the git config minus, minus global - -18 -00:00:54,170 --> 00:00:56,440 -user dot name. Which means we are telling it - -19 -00:00:56,440 --> 00:00:59,900 -our user name. We'll specify our user name which - -20 -00:00:59,900 --> 00:01:02,970 -in this case is George P. Burdell. You could - -21 -00:01:02,970 --> 00:01:04,970 -also provide your email address in the same - -22 -00:01:04,970 --> 00:01:09,370 -way. So you still use the git config --global - -23 -00:01:09,370 --> 00:01:12,750 -command. But in this case you will write user.email - -24 -00:01:12,750 --> 00:01:16,580 -as the property. And then you'll specify a suitable - -25 -00:01:16,580 --> 00:01:19,670 -email address. In this case, the email address of George P. - -26 -00:01:19,670 --> 00:01:23,780 -Burdell. We will now look at some commonly used commands that to - -27 -00:01:23,780 --> 00:01:27,210 -create and maintain a local repository. Let's first create a - -28 -00:01:27,210 --> 00:01:30,510 -new project and call it my project. So, to do that we - -29 -00:01:30,510 --> 00:01:32,790 -are simply going to create a directory and then we're going - -30 -00:01:32,790 --> 00:01:35,520 -to move into that directory. Now, if we try to call the - -31 -00:01:35,520 --> 00:01:39,000 -git status command at this point to see what's the state of - -32 -00:01:39,000 --> 00:01:41,990 -my project, of course git doesn't know anything about this project, right? - -33 -00:01:41,990 --> 00:01:44,360 -So, you will get an error. It will tell you that, basically, - -34 -00:01:44,360 --> 00:01:47,080 -we're not in a git repository. So how do we create a git - -35 -00:01:47,080 --> 00:01:50,090 -repository? How do we make this? A Git repository, but we do it - -36 -00:01:50,090 --> 00:01:53,560 -by calling git init and the output will tell you that the - -37 -00:01:53,560 --> 00:01:56,580 -repository was initialized. If we check the status again, you will see - -38 -00:01:56,580 --> 00:01:59,790 -that now Git recognizes the repository and will tell you that there is - -39 -00:01:59,790 --> 00:02:01,160 -nothing to commit because, of course, - -40 -00:02:01,160 --> 00:02:03,190 -the repository is completely empty. So let's - -41 -00:02:03,190 --> 00:02:07,380 -just create a new, empty file. Which we're going to call REAME. So - -42 -00:02:07,380 --> 00:02:10,008 -now if you run git status, as you can see, git will - -43 -00:02:10,008 --> 00:02:13,250 -tell you there is a file that's called README, but it's untracked. - -44 -00:02:13,250 --> 00:02:15,600 -Now what that means is that the file not staged, if you - -45 -00:02:15,600 --> 00:02:18,710 -remember our lesson. So what we need to do, we first need - -46 -00:02:18,710 --> 00:02:22,040 -to tell git that, you know, this needs to be considered. And - -47 -00:02:22,040 --> 00:02:25,690 -the way we do that, is by calling the git at command - -48 -00:02:25,690 --> 00:02:28,880 -and then we specify README as the argument for the command. If - -49 -00:02:28,880 --> 00:02:33,090 -we call again, Git status. Now, as you can see, Git knows - -50 -00:02:33,090 --> 00:02:35,780 -that there is a new file called README, because the file - -51 -00:02:35,780 --> 00:02:38,390 -is staged. So Git is aware of the fact that this - -52 -00:02:38,390 --> 00:02:41,490 -file has to be committed. So, to commit a file, - -53 -00:02:41,490 --> 00:02:45,410 -we simply execute git commit, which will open a text editor, which - -54 -00:02:45,410 --> 00:02:48,500 -can be different, depending on what is your environment, and here - -55 -00:02:48,500 --> 00:02:50,980 -we need to add a comment to be added to the commit. - -56 -00:02:50,980 --> 00:02:54,760 -So here we simply write in Added README file, then we - -57 -00:02:54,760 --> 00:02:58,170 -can close and save And this will add the file to the - -58 -00:02:58,170 --> 00:03:01,310 -Git repository. The local Git repository of course. At this - -59 -00:03:01,310 --> 00:03:04,220 -point, if we ran Git status again to see where we are. - -60 -00:03:04,220 --> 00:03:06,400 -You can see that Git tells you that there is nothing - -61 -00:03:06,400 --> 00:03:08,660 -to commit. Because of course the only file that we have, is - -62 -00:03:08,660 --> 00:03:13,070 -committed to the repository. Now, let's make some changes to our - -63 -00:03:13,070 --> 00:03:17,270 -README file. I'm just going to add some text here. Once more, we - -64 -00:03:17,270 --> 00:03:20,050 -can run git status, and at this point, git knows about - -65 -00:03:20,050 --> 00:03:23,430 -this file. So, it will know that README file has been modified. - -66 -00:03:23,430 --> 00:03:25,280 -Remember that before, it was telling you that it was a new - -67 -00:03:25,280 --> 00:03:28,310 -file, now it knows that there was a different version in the - -68 -00:03:28,310 --> 00:03:31,430 -repository. So something we can do, at this point, for example, is - -69 -00:03:31,430 --> 00:03:34,820 -to check the differences. Between this file and the committed one by - -70 -00:03:34,820 --> 00:03:38,040 -executing get diff readme and if you look at the output of - -71 -00:03:38,040 --> 00:03:42,320 -the get diff command here, you can see that this line, readme - -72 -00:03:42,320 --> 00:03:45,170 -file content was added and you'll see that it was added because - -73 -00:03:45,170 --> 00:03:48,610 -there's a plus sign before that line. In case of deletion of lines, - -74 -00:03:48,610 --> 00:03:51,460 -you'll see a minusm sign there. So at this point, if we - -75 -00:03:51,460 --> 00:03:54,950 -want to commit our file, remember that we'll always have to tell git - -76 -00:03:54,950 --> 00:03:58,070 -that we want to stage the file before committing it. Otherwise, it - -77 -00:03:58,070 --> 00:04:01,420 -will be ignored by the commit operation. So to tell git, that the - -78 -00:04:01,420 --> 00:04:04,140 -file has to be staged, we will, can use the usual git - -79 -00:04:04,140 --> 00:04:07,140 -add command. But if you remember the lesson, we can also use a - -80 -00:04:07,140 --> 00:04:10,150 -shortcut. So you, we don't really have to do this in two steps. - -81 -00:04:10,150 --> 00:04:13,730 -We can simply say, git commit -a, and this will tell git to - -82 -00:04:13,730 --> 00:04:17,120 -commit all of the files that git knows about, which in this - -83 -00:04:17,120 --> 00:04:19,959 -case is only the written file of course. Something else that we can - -84 -00:04:19,959 --> 00:04:22,950 -do, is that we can also provide the right away message for - -85 -00:04:22,950 --> 00:04:26,140 -the commit, without having to open an editor. So, to do that we - -86 -00:04:26,140 --> 00:04:29,760 -can specify the -n option. And at this point a we can - -87 -00:04:29,760 --> 00:04:34,050 -just put a in double quotes our content we press enter and as - -88 -00:04:34,050 --> 00:04:36,690 -you can see it will notify us that one file was changed - -89 -00:04:36,690 --> 00:04:38,850 -and in particular it will also tell you that there was an a - -90 -00:04:38,850 --> 00:04:41,470 -insertion again if we run git status you will see that - -91 -00:04:41,470 --> 00:04:44,800 -there is nothing else to commit. So now lets imagine that - -92 -00:04:44,800 --> 00:04:48,390 -you want to see the version history for your repository. You - -93 -00:04:48,390 --> 00:04:51,760 -can do that by running the git log command. So if - -94 -00:04:51,760 --> 00:04:54,560 -you run that, it will show you all the different commits - -95 -00:04:54,560 --> 00:04:57,990 -For your repository. And each commit has got a commit ID, as - -96 -00:04:57,990 --> 00:05:01,010 -you can see here and the one down here is - -97 -00:05:01,010 --> 00:05:04,740 -the first commit, where as the one above is the second commit. - -98 -00:05:04,740 --> 00:05:07,670 -And as you can see, we'll also show you the comments associated - -99 -00:05:07,670 --> 00:05:11,070 -with each commit. And in case you wanted to see the changes introduced - -100 -00:05:11,070 --> 00:05:14,500 -by a commit. You can use that git show command, and you - -101 -00:05:14,500 --> 00:05:18,220 -can provide the commit ID for the commit that you're interested in. - -102 -00:05:18,220 --> 00:05:20,600 -And you don't really need to provide the whole ID, you can - -103 -00:05:20,600 --> 00:05:23,600 -provide the first four or more characters. So that's what we're going to - -104 -00:05:23,600 --> 00:05:26,540 -do here. So we're going to specify the second commit, and when we - -105 -00:05:26,540 --> 00:05:31,120 -execute the command it will show use the changes introduced by that commit. - -106 -00:05:31,120 --> 00:05:33,550 -To fetch a repository from a remote server, you can - -107 -00:05:33,550 --> 00:05:36,350 -use the git clone command. So you will write git clone - -108 -00:05:36,350 --> 00:05:39,140 -and then specify the URL. For the remote repository. Here - -109 -00:05:39,140 --> 00:05:44,260 -we are using the SSH protocal and there are different protocals - -110 -00:05:44,260 --> 00:05:46,680 -that can be used, so the remote repository can be - -111 -00:05:46,680 --> 00:05:49,800 -made available in different ways. As you can see, when you - -112 -00:05:49,800 --> 00:05:54,050 -clone the project, the project is cloned into the local directory. - -113 -00:05:54,050 --> 00:05:57,180 -If you wanted to import the project under a different name. - -114 -00:05:57,180 --> 00:05:59,790 -You could just specify the name that you want for the - -115 -00:05:59,790 --> 00:06:03,110 -Local Directory. For example, in this case, myproject2. And, - -116 -00:06:03,110 --> 00:06:06,630 -so here you'll get the project in my local work space - -117 -00:06:06,630 --> 00:06:09,530 -with the name that I specified. So, let's go inside one - -118 -00:06:09,530 --> 00:06:12,020 -of these two projects that have the same content because they're - -119 -00:06:12,020 --> 00:06:14,930 -coming from the repository. If you want to see the details - -120 -00:06:14,930 --> 00:06:18,550 -of the server you can use the remote command and specify - -121 -00:06:18,550 --> 00:06:22,230 -the flag -v. And here we'll show you what is the remote - -122 -00:06:22,230 --> 00:06:25,560 -repository now let's go ahead to make some changes to the project - -123 -00:06:25,560 --> 00:06:28,820 -for example let's add a file. So I'm just going to create this - -124 -00:06:28,820 --> 00:06:31,230 -empty file which I am going to call new file I'm going to - -125 -00:06:31,230 --> 00:06:34,890 -add it to my index so that it gets committed. Later on and - -126 -00:06:34,890 --> 00:06:37,650 -then I'm going to run git commit to actually commit it to the - -127 -00:06:37,650 --> 00:06:41,570 -local repository. And I'm going to specify the comment for the commit right - -128 -00:06:41,570 --> 00:06:44,120 -away here from the command line. So when we do that the - -129 -00:06:44,120 --> 00:06:47,680 -file gets added to my local repository. And if we want to double - -130 -00:06:47,680 --> 00:06:50,690 -check that, we can run git log. And if you look at - -131 -00:06:50,690 --> 00:06:53,360 -the last commit at the top, you can see that it's telling - -132 -00:06:53,360 --> 00:06:56,980 -me that the new file was added to the repository, showing the - -133 -00:06:56,980 --> 00:06:59,940 -comment that I added. But this is just for the local repository, - -134 -00:06:59,940 --> 00:07:03,100 -so I need to use the git push command to push it - -135 -00:07:03,100 --> 00:07:06,250 -to the remote repository. And at this point, when I run that, - -136 -00:07:06,250 --> 00:07:09,890 -my local changes will be committed. To the remote repository. So now - -137 -00:07:09,890 --> 00:07:13,110 -let's go to the other copy of the project that we created. - -138 -00:07:13,110 --> 00:07:16,660 -The one under directory myproject2. If you remember this project was - -139 -00:07:16,660 --> 00:07:19,610 -linked up to the same remote project. But of course, if we run - -140 -00:07:19,610 --> 00:07:22,720 -get log here, we don't see this latest change that we made, because - -141 -00:07:22,720 --> 00:07:25,970 -we didn't synchronize this local copy with the remote copy. And so we - -142 -00:07:25,970 --> 00:07:28,530 -just have these files, the README and ,Five that worked there before. - -143 -00:07:28,530 --> 00:07:30,720 -So what we need to do is that we need to pull the - -144 -00:07:30,720 --> 00:07:34,180 -changes from the remote repository using git pull, and when we do that, - -145 -00:07:34,180 --> 00:07:38,130 -that will actually pull these changes and therefore, create the new files that - -146 -00:07:38,130 --> 00:07:41,340 -we created in the other directory. And if we run git log now, - -147 -00:07:41,340 --> 00:07:43,790 -you can see that now we have the new entry. The comment at - -148 -00:07:43,790 --> 00:07:46,920 -the top, that says this new file was added and of course, this - -149 -00:07:46,920 --> 00:07:49,880 -is just an example, so we had two copies of the project on the - -150 -00:07:49,880 --> 00:07:52,990 -same machine and for the same user, so the normal users scenario for - -151 -00:07:52,990 --> 00:07:56,230 -this, it will be that, each user will have their local copy, but this - -152 -00:07:56,230 --> 00:07:59,220 -should have given you the idea of how, git allows you to work - -153 -00:07:59,220 --> 00:08:03,210 -on some local file. Commit them and push them to a remote repository and - -154 -00:08:03,210 --> 00:08:06,680 -other users to get your changes, do further changes push - -155 -00:08:06,680 --> 00:08:08,860 -them as well and then, you know, they will allow you - -156 -00:08:08,860 --> 00:08:10,890 -to get their changes, and so on and so forth. So - -157 -00:08:10,890 --> 00:08:15,540 -really allows this collaboration between different users and keeping track - -158 -00:08:15,540 --> 00:08:18,730 -of all the changes made by the different users. So now - -159 -00:08:18,730 --> 00:08:21,860 -let's look at some more advanced concept, which are the concept - -160 -00:08:21,860 --> 00:08:25,600 -of branching, and merging. So what branching means is basically is - -161 -00:08:25,600 --> 00:08:28,540 -to make a copy, to create a branch of the current - -162 -00:08:28,540 --> 00:08:32,070 -project so that we can work on that copy indpendently from the - -163 -00:08:32,070 --> 00:08:34,740 -other copy, from the other branch. And then we can decide whether - -164 -00:08:34,740 --> 00:08:37,190 -we want to keep, both branches, or we want to merge them at - -165 -00:08:37,190 --> 00:08:40,510 -some point. And you can of course have multiple branches, not just two. - -166 -00:08:40,510 --> 00:08:43,558 -And the reason why this is particularly useful is because in many - -167 -00:08:43,558 --> 00:08:46,790 -cases if you think, about the way we develop software in general, - -168 -00:08:46,790 --> 00:08:50,030 -we work with artifacts. We might have the need to create kind - -169 -00:08:50,030 --> 00:08:53,910 -of a separate copy of your work space. To do some experiments for example. - -170 -00:08:53,910 --> 00:08:54,940 -So you want to change something in - -171 -00:08:54,940 --> 00:08:56,250 -the code, you're not really sure it's going to - -172 -00:08:56,250 --> 00:08:57,650 -work and you don't want to touch - -173 -00:08:57,650 --> 00:08:59,500 -your main copy. So that's the perfect application - -174 -00:08:59,500 --> 00:09:00,830 -for branching. If you want to do - -175 -00:09:00,830 --> 00:09:02,710 -something like that...you want to experiment or do - -176 -00:09:02,710 --> 00:09:04,800 -some modifications that you're not sure about, - -177 -00:09:04,800 --> 00:09:06,820 -you will branch your code, you will do - -178 -00:09:06,820 --> 00:09:08,230 -the changes...and then if you're happy with - -179 -00:09:08,230 --> 00:09:09,890 -the changes, you will merge that branch - -180 -00:09:09,890 --> 00:09:13,250 -with the original one, or worse if you're not happy with the changes you will - -181 -00:09:13,250 --> 00:09:16,680 -just throw away that branch. So this is just one possible use of branch but - -182 -00:09:16,680 --> 00:09:18,950 -it's one of the main uses of that. So in all let's see how that - -183 -00:09:18,950 --> 00:09:21,070 -can be done with git. So first of all if you - -184 -00:09:21,070 --> 00:09:24,740 -want to see which branches are currently present in your project, you can - -185 -00:09:24,740 --> 00:09:28,260 -simply execute git branch, and in this case, you can see - -186 -00:09:28,260 --> 00:09:31,090 -that there's only one branch, which is called master, and the star - -187 -00:09:31,090 --> 00:09:33,940 -there indicates that this is our current branch. So how do - -188 -00:09:33,940 --> 00:09:37,210 -we create a new branch? So we simply run the command - -189 -00:09:37,210 --> 00:09:41,010 -git branch and specify a name for the new branch, for example we'll - -190 -00:09:41,010 --> 00:09:44,110 -call it newBranch, to make it very explicit. At this point, - -191 -00:09:44,110 --> 00:09:46,940 -if we run git branch of course, we will have - -192 -00:09:46,940 --> 00:09:50,410 -a new branch plus master will still be our current branch. So - -193 -00:09:50,410 --> 00:09:52,780 -if you want to switch to the new branch, we will use - -194 -00:09:52,780 --> 00:09:56,510 -the git checkout command and specify the name of the branch that - -195 -00:09:56,510 --> 00:10:00,220 -we want to become our current branch. So when we run that, - -196 -00:10:00,220 --> 00:10:02,780 -git will tell us that we switched to the new branch. And - -197 -00:10:02,780 --> 00:10:05,920 -if we run git branch you will see that now the star - -198 -00:10:05,920 --> 00:10:09,130 -is next to newBranch because that's our current branch. There is a - -199 -00:10:09,130 --> 00:10:12,834 -shortcut for these two commands. If you run the command git - -200 -00:10:12,834 --> 00:10:17,240 -checkout specify the -b flag and then the name of - -201 -00:10:17,240 --> 00:10:19,790 -the new branch it will do both things at the same - -202 -00:10:19,790 --> 00:10:22,910 -time. It will create the new branch called testing in this - -203 -00:10:22,910 --> 00:10:25,760 -case, and then it will switch to new branch and then - -204 -00:10:25,760 --> 00:10:28,860 -it will tell you after executing the command. So now if - -205 -00:10:28,860 --> 00:10:31,290 -we look at the git branch output, you can see that - -206 -00:10:31,290 --> 00:10:35,090 -there is three branches and we are currently on the testing branch. - -207 -00:10:35,090 --> 00:10:37,300 -So now let's create a new file and just call it test - -208 -00:10:37,300 --> 00:10:41,180 -file, put some content in there, save it, we edit and commit it. - -209 -00:10:47,380 --> 00:10:50,280 -And as you can see, now in this current branch, we have our - -210 -00:10:50,280 --> 00:10:53,430 -testFile. So now let's switch to a different branch. So let's go back - -211 -00:10:53,430 --> 00:10:57,550 -to the master branch using the usual git checkout command. So now if - -212 -00:10:57,550 --> 00:11:00,310 -we do an ls, if we check the content of the current directory, - -213 -00:11:00,310 --> 00:11:03,140 -we can see that the testFile is not there, because of course, it's - -214 -00:11:03,140 --> 00:11:06,070 -not in this branch. so now let's assume that we are happy with - -215 -00:11:06,070 --> 00:11:09,260 -the testFile that we created, with the modification that we made on the - -216 -00:11:09,260 --> 00:11:13,080 -branch. And so we want to merge that branch with our master branch. - -217 -00:11:13,080 --> 00:11:16,180 -To do that we can call the git merge command and - -218 -00:11:16,180 --> 00:11:19,260 -we'll specify the branch that we want to merge with the current - -219 -00:11:19,260 --> 00:11:23,030 -one. So we will specify testing in this case. That will merge - -220 -00:11:23,030 --> 00:11:26,260 -the testing branch with the current branch, which is the master. Which - -221 -00:11:26,260 --> 00:11:29,200 -means that now the testfile is in my current working directory, - -222 -00:11:29,200 --> 00:11:32,180 -is in my current, Current branch. And if I run the branch, - -223 -00:11:32,180 --> 00:11:35,590 -you'll see that the testing branch is obviously still there, so let's - -224 -00:11:35,590 --> 00:11:38,370 -assume that we want to delete the testing branch at this point - -225 -00:11:38,370 --> 00:11:41,220 -because we don't need it anymore. We could simply execute - -226 -00:11:41,220 --> 00:11:44,940 -the branch -d which stands for -delete, specify - -227 -00:11:44,940 --> 00:11:47,670 -the name of the branch and this will eliminate that - -228 -00:11:47,670 --> 00:11:51,670 -branch as confirmed by running the command git branch or the - -229 -00:11:51,670 --> 00:11:55,030 -testing branch no longer shows up. So, something that might - -230 -00:11:55,030 --> 00:11:57,200 -happen when you merge a branch is, is that you - -231 -00:11:57,200 --> 00:12:00,000 -might have conflicts For example, in case you change the, - -232 -00:12:00,000 --> 00:12:03,600 -the same file into different branches. So, let's see an example - -233 -00:12:03,600 --> 00:12:06,730 -of that. So, we're going to check which branches we have, - -234 -00:12:06,730 --> 00:12:09,260 -so we have two branches, in this case, master and newBranch - -235 -00:12:09,260 --> 00:12:14,040 -Our current branch is master. Let's open this file called new - -236 -00:12:14,040 --> 00:12:19,310 -file and, add some content there. So now let's commit - -237 -00:12:19,310 --> 00:12:21,890 -this changes to the get to the local repository. Now - -238 -00:12:21,890 --> 00:12:24,600 -let's switch to the other branch and if you remember we - -239 -00:12:24,600 --> 00:12:26,900 -do this by running git checkout and the name of the - -240 -00:12:26,900 --> 00:12:29,150 -branch. And at this point we do the same operation here. - -241 -00:12:29,150 --> 00:12:32,090 -So we take this file and we change it here to. In this - -242 -00:12:32,090 --> 00:12:34,740 -case we have content that reflects the fact that we are. In the - -243 -00:12:34,740 --> 00:12:38,790 -new branch just for convenience. At this point, we also can move the - -244 -00:12:38,790 --> 00:12:41,870 -file here. The comment here is, of course, that this is the new - -245 -00:12:41,870 --> 00:12:44,800 -file in the new branch. So, at this point, what we have here - -246 -00:12:44,800 --> 00:12:47,980 -is that we have this file called newfile that has been modified - -247 -00:12:47,980 --> 00:12:51,320 -independently both in the master branch and in the new branch. So we - -248 -00:12:51,320 --> 00:12:55,090 -have a conflict. Right? So, now, let's switch back to the master branch. - -249 -00:12:55,090 --> 00:12:57,720 -So now, let's say we want to merge the two branches. So - -250 -00:12:57,720 --> 00:13:00,490 -since we are in master, we want to say that when I - -251 -00:13:00,490 --> 00:13:03,970 -merge the new branch into the current one. And when we run - -252 -00:13:03,970 --> 00:13:07,540 -that, we get an auto merging conflict. So at this point what - -253 -00:13:07,540 --> 00:13:10,390 -we can do, is that we can manually fix the conflict by - -254 -00:13:10,390 --> 00:13:13,910 -opening the new file. So the file that was showing the conflict. - -255 -00:13:13,910 --> 00:13:16,860 -So here you can see the kind of of information that you get - -256 -00:13:16,860 --> 00:13:20,340 -in the conflicted file. So it's telling you basically that there is - -257 -00:13:20,340 --> 00:13:23,760 -in the head which is the, the master this conflict. Which is new - -258 -00:13:23,760 --> 00:13:26,830 -file in master. Which is the content that we added of course. And - -259 -00:13:26,830 --> 00:13:30,190 -then you know, under, you know, the separator you can see the content - -260 -00:13:30,190 --> 00:13:32,650 -that was added in the new branch. Which is the contents in new - -261 -00:13:32,650 --> 00:13:35,990 -file, in new branch. So basically, what this is showing you is the - -262 -00:13:35,990 --> 00:13:39,150 -parts of the file that are conflicting. In this case, we only have - -263 -00:13:39,150 --> 00:13:41,990 -one line, is basically the whole file into two versions and you can - -264 -00:13:41,990 --> 00:13:45,460 -decide which version you want to keep or how you want to merge in - -265 -00:13:45,460 --> 00:13:48,260 -general, the two pieces. So here, let's assume that we - -266 -00:13:48,260 --> 00:13:52,140 -want to keep the content from the master. So what we're - -267 -00:13:52,140 --> 00:13:54,510 -going to do is we're going to elimate the annotations - -268 -00:13:54,510 --> 00:13:57,500 -and we're going to eliminate the additional content. We save this - -269 -00:13:57,500 --> 00:13:59,680 -file. So at this point what we need to do - -270 -00:13:59,680 --> 00:14:04,040 -is simply to commit the modified file (the merge file) and we - -271 -00:14:04,040 --> 00:14:07,440 -do that in the normal way. We call git add, specifying - -272 -00:14:07,440 --> 00:14:11,180 -the file, so git add newfile. Then we run git commit - -273 -00:14:11,180 --> 00:14:15,630 -newfile, and we specify in the comment for clarity that this is the merged file, - -274 -00:14:15,630 --> 00:14:19,530 -so that we performed a merge. And at this point we are done with our merge. |