Lab00

思考题

thinking 0.1

不同之处

1.状态不同:第一次add之前,文件状态为Untracked,当add之后再次修改文件后,文件状态变为Modified

2.操作不同:对于Modified状态下的文件,可以通过git checkout -- <file>将该文件变回修改前的状态

原因

对于已经git add的文件,文件已经进入暂存区,这时在工作区再次修改时,和add前的状态是不同的;且可以通过暂存区的文件对工作区进行恢复。

thinking 0.2

add the file: git add; git commit

stage the file: git add

commit: git commit

thinking 0.3

git checkout -- printf.c

git reset HEAD printf.c

git rm --cached Tucao.txt

thinking 0.4

对于每一次git commit操作,文件都会在版本库中被记录下来。

通过git reset --hard <Hash-code>操作,可以回溯到任意一个曾经commit的版本。

thinking 0.5

1.正确。

通过本地测试,在本地克隆远程仓库后,只会在本地检出HEAD指向的分支,一般为main/master分支。

2.正确。

这四条指令都是本地的状态和提交记录,与远程仓库无关。

3.错误。

克隆时所有分支都被克隆,但只有HEAD指向的分支被检出,需要在本地创建其他分支与远程仓库建立联系。

4.正确。

通过本地实验后发现是正确的。

thinking 0.6

Lab00-6

thinking 0.7

command

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
echo echo Shell Start...>> test
echo 'echo set a = 1' >> test
echo a=1 >> test
echo 'echo set b = 2' >> test
echo b=2 >> test
echo 'echo set c = a+b'>> test
echo 'c=$[$a+$b]'>> test
echo 'echo c = \$c'>> test
echo echo save c to ./file1 >> test
echo 'echo $c>file1'>> test
echo echo save b to ./file2 >> test
echo 'echo $b>file2'>> test
echo echo save a to ./file3 >> test
echo 'echo $a>file3'>> test
echo echo save file1 file2 file3 to file4 >> test
echo 'cat file1>file4' >> test
echo 'cat file2>>file4' >> test
echo 'cat file3>>file4' >> test
echo echo save file4 to ./result >> test
echo 'cat file4>>result' >> test

result

1
2
3
4
5
6
7
8
9
10
11
12
13
Shell Start...
set a = 1
set b = 2
set c = a+b
c = 3
save c to ./file1
save b to ./file2
save a to ./file3
save file1 file2 file3 to file4
save file4 to ./result
3
2
1

echo echo Shell Startecho 'echo Shell Start'效果上没有区别;

echo echo \$c>file1后,‘file1’中内容为echo $c;

echo 'echo \$c>file1'后,标准输出为echo \$c>file1

实验难点

git文件状态和恢复操作一图。

Lab00-1

总结感受

在寒假预习了部分知识点的基础上,课下实验大约用4个小时左右的时间完成,总体来说Lab00课下实验难度不高。

Lab00主要在于对一些工具的了解和熟练掌握,在完成课下实验之后还需要不断学习巩固,为后面的学习做准备。

其中个人遇到的难点有:

git操作较多,尤其是多种恢复操作,难以区分和记忆。

LinuxShell操作较多,熟练掌握需要一定的练习;bash批处理文件的编写也需要不断巩固,注意细节。