Git的使用(LINUX/Ubuntu下)

可参考视频资料:b站搜索"git使用",up主"不咲貓"(音:xiao mao)

 

0.建立git目录(仓库/代码库)

   git init (在本机电脑上新建的某个文件夹下执行此句,表示那个文件夹可以被git管理)

   执行此句之后可以用ls -la看到多出了一个.git文件

1.创建版本

     git add .  (git add <filename>)

     回车,然后再输入:

     git commit -m "提交说明,每次的说明内容可以一样"

2.查看版本记录

    git log (git reflog)(有的时候一屏显示不完,会用冒号开头显示,按上下键滚动,按q退出)

    git log --pretty=oneline (以简短形式显示)  

3.版本回退

    git reset --hard HEAD^^^(表示回退到当前版本的前三个版本)

    git reset --hard HEAD^^^^(表示回退到当前版本的前四个版本)

    git reset --hard HEAD~100(表示回退到当前版本的前100个版本)

    gir reset --hard 725b257ef (725b257ef为想要回退到的那个版本的版本号的前几位,版本号可以用git log 或git reflog查看)

4.查看状态(git status)

    git  status ,查看暂存区的更新状态。如果某次,新加了一个文件code3.txt,又更改了一个文件code2.txt.当我们执行git add code2.txt code3.txt之后,执行git status,变回显示出:

 

Git的使用(LINUX/Ubuntu下)

  然后git commit -m "xxxx" 就可以将 code2.txt和code3.txt提交。  

5.工作区和暂存区

   工作区是指编辑代码的目录,即当时git init执行的那个目录。

   暂存区是指git管理的目录,在本地目录和远程目录的中间地带。git add命令可以使工作区的文件提交到暂存区,git commit命令可以使得暂存区的文件创建一个版本号。

    git只会对提交暂存区的修改创建版本。(即如果对code3.txt的内容还未做git add的话,那么cat code3.txt之后的内容实际和工作区的内容是不一样的)

6.撤销修改

   git checkout --<filename>丢弃工作区的改动。

   如果code3.txt已经通过git add添加到了暂存区,这时候想要撤销的话,就要git reset HEAD code3.txt (即撤销暂存区的修改),然后执行git status就发现又可以对code3.txt进行git checkout操作了.。

  场景1:当你改乱了工作区的某个文件内容,想直接丢弃工作区的修改时,用git checkout --filename

  场景2:不但改乱了工作区的内容,还添加到了暂存区,想丢弃修改。此时先要git reset HEAD filename,就回到场景1,按场景1操作。

   场景3:已经提交了不适合的修改到版本库时,想要撤销修改时候,则要用第3条所示的版本回退。

7.对比文件差异

   (1)对比工作区的文件和版本中的文件不同:git diff HEAD -- code3.txt

   显示的结果中,没有加号或减号的表示两个文件中都有的内容。 -减号后的内容,表示HEAD中的内容,加号+代表工作区中的内容,+xxxxx表示工作区的code3.txt比HEAD版本中多处的一行内容是xxxx;

    (2)对比两个版本之间某个文件的不同

     如要对比HEAD和HEAD^的code3.txt的不同。输入git diff HEAD HEAD^ --  code3.txt ,在结果中,没有加号或减号表示两个文件都有的内容。-代表HEAD中的内容,+代表HEAD^中的内容。如下图,其结果的意思是,HEAD版本中的三行红色内容与HEAD^版本的一行绿色内容差异,即HEAD^版本的一行加号绿色内容被改为了HEAD版本的三行减号红色内容

Git的使用(LINUX/Ubuntu下)

  如把HEAD和HEAD^位置对调,即git diff HEAD^ HEAD -- code3.txt,则结果为下图,-减号代表HEAD^的内容,+加号代表HEAD的内容。显示的内容虽然对调了,但内涵却与上图是一致的。

Git的使用(LINUX/Ubuntu下)

 

8.删除文件

 rm code3.txt

删除或修改文件都是对工作区的内容做改动,因此都可以用git checkout撤销;

如果确实要将它从工作区删除,则可以把删除的操作提交,即可以git add code3.txt.或git rm code3.txt.

若想将删除提交,则git commit -m "删除"

  因为删除文件也是对工作区的改动,因此:

  场景1:当你改乱了工作区的某个文件内容,想直接丢弃工作区的修改时,用git checkout --filename

  场景2:不但改乱了工作区的内容,还添加到了暂存区,想丢弃修改。此时先要git reset HEAD filename,就回到场景1,按场景1操作。

   场景3:已经提交了不适合的修改到版本库时,想要撤销修改时候,则要用第3条所示的版本回退。