上一篇文章,windows下GIT使用记录--00准备阶段中,主要记录了Windows下Git Gui和Github的基本配置。既然一切都已经配置停当,那么接下来就该用Git来为我们自己服务了。
首先我在本地主机的Git目录下新建Lab2文件夹,并在该文件夹下编写两个该课程中用到的源代码文件: prob1.c 和 prob2.c。此时,打开Git Gui,并且点击Rescan之后我们就会发现在Git Gui左侧上面的一栏Unstaged changes中,会出现我们刚刚新加入的两个文件的相对路径: Lab2文件夹下prob1.c,Lab2文件夹下prob2.c。
为了更加清晰的了解Git Gui每一步的作用,在此需要介绍一点Git的工作原理。在Git工作目录下的所有文件不外乎两种状态:已跟踪的文件或未跟踪的文件。已跟踪的文件是指已经被Git跟踪的文件(这怎么像废话啊),也就是说这些文件在上次快照中(上次stage changed或commit之后)有它们的记录。其它所有文件则属于未跟踪的文件。
这里再以Git Gui的具体操作说明一下。当我们创建两个C源代码文件后,它们并不在上次快照中,那么这两个文件就属于未跟踪的文件。Rescan就是查看当前目录下的文件和缓存中的文件或者上次快照中该目录下的文件有何不同,相当于Git中git status或git diff的命令。
接下来,我们单击Stage changed按钮,两个文件就开始被Git跟踪,现在这两个源代码文件就属于已跟踪文件了。它们从左侧上面的unstaged changes一栏中消失,出现在了下面一栏staged changes(will commit)一栏中。该按钮相当于git add命令。如果此时你对prob1.c的内容进行了修改,要再次单击stage changed按钮,你刚刚修改得到的最新的prob1.c文件才会被放到暂存区中。否则的话,在暂存区中的还是第一次stage changed后的那个prob1.c,最新的改变并没有被放到缓存区中。
现在暂存区已经准备妥当,可以提交了。
在Git Gui右侧下边的窗口中填写你对当前源码的说明。单击Commit按钮。你的更新就被提交到本地Git代码仓库中了。当然这不是我们的目的,我们还想通过GitHub分享自己的代码。接下来只要单击Push按钮,你的代码就会被上传到Github中。单击push按钮后,会出现一个push branches的对话框。
点击push按钮之后,一个上传状态的对话框就会出现,显示上传过程及结果。
如果在第一步中没有正确从github中获取代码,那么上传的过程会失败,并给出错误原因:Updates were rejected because the tip of your current branch is behind its remote counterpart. Merge the remote changes (e.g. 'git pull') before pushing again. 我们可以通过Remote->Fetch from,然后在Merge刚刚fetch的代码和本地代码,再次上传就可以了。如果Github中的代码刚刚创建,可以直接选择force overwrite existing branch (may discard changes)复选框,然后单击push按钮进行上传,使用本地代码来创建github的代码仓库。
之所以出现这个错误,是因为虽然本地主机已经和Github能够通信了,但是本地代码仓库和Github中的该项目的代码仓库均有自己的master分支。如果不选择强制上传的话,Git不知道两个版本的前后顺序,无法记录,会导致不能上传成功的错误。其实这个错误只要我们在首次上传时勾选强制上传就行了,不过之后就不用勾选该复选框了。
我们上传成功后。登录Github,打开该项目的界面,就会发现我们刚刚上传的内容。
接下来我们来看怎么从Github拷贝一个代码仓库到另外一台机器呢?首先打开Git Gui,在启动界面选择Clone Existing Repository,之后填写Source location和target directory,如下图所示。这个相当于git clone命令。
其中Source location就是该项目在Github上的地址,而target directory就是你要建立代码仓库的目标文件夹,这里注意该目标文件夹不能是已经存在的,否则会出现“该目录已存在,不能克隆项目”的错误提示信息。以上面的操作为例,在进行这步操作时,W盘下面没有Git这个文件夹,更没有CC510这个文件夹。
点击Clone之后,就会出现一个对话框提示Clone进度,等克隆完成之后,Git Gui会自动打开。但是Git Gui并不会显示任何文件,因为我们现在并没有对该项目进行任何修改。而打开相应的目录,我们会看到该代码仓库的确已经被克隆到本地主机了。
有了上面的介绍,相信你已经学会了用Git Gui来进行最基本的Git操作,通过Git和github来管理自己的项目了。
转载请注明出处:永不止步