天天看点

vscode 终端运行git_vscode中使用git终端命令行

名词解释

1.工作区(Working Directory) : 就是你在电脑里能看到的目录,比如我的GitHub文件夹目录

2.版本库(Repository): 在工作区有一个隐藏目录.git,这个就是Git的版本库

3.暂存区: 在版本库中存在一个成为Stage的暂存区,它是专门存储修改和添加的区域。一旦提交后,如果你又没有对工作区做任何修改,那么暂存区就是干净的

管理修改(需要案例证明)

为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件。你会问,什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改。

Git不会提交没有放到暂存区的修改

这里我画了一个图方便大家理解;

vscode 终端运行git_vscode中使用git终端命令行

git流程.png

vscode 终端运行git_vscode中使用git终端命令行

bg2015120901.png

Workspace:工作区

Index / Stage:暂存区

Repository:仓库区(或本地仓库)

Remote:远程仓库

vscode 终端运行git_vscode中使用git终端命令行

git_three_rigon.png

工作区(working diretory) 用于修改文件

缓存区(stage) 是用来暂时存放工作区中修改的内容

提交历史(commit history) 提交代码的历史记录

1.安装:GitLens

2.快捷键打开终端:ctrl+`

3.cd 项目文件下;如cd gitlab/learngit

4.命令行:创建版本库,版本提交,版本回退,管理修改,撤销修改,删除文件

0、创建版本库(选择一个合适的地方,创建一个空目录gitlab/learngit。进入gitlab/learngit文件夹中)

$ cd gitlab/learngit

$ git init // 通过git init命令把这个目录变成Git可以管理的仓库

或者直接拉取克隆版本库项目

$ git clone 链接,类似[email protected]:yourname/test.git的

1、版本提交

git add 文件名或文件夹名称或者.代表所有

git commit -m "这次的提交描述备注"

git status 查看提交修改的文件

git branch 查看当前分支

git branch 创建分支

git checkout 切换分支

git merge (不是当前的分支)合并某分支到当前分支

git branch -d 删除分支

$ git push origin master 上传本地指定分支到远程仓库

$ git pull [branch] 取回远程仓库的变化,并与本地分支合并

2、版本回退

回退到上一个版本(可以多次使用)

$ git reset --hard HEAD^

回退到上两个版本

$ git reset --hard HEAD^^

git log查看提交历史,然后git reset 回退到指定版本 。这也是每次commit -m" "中写内容的重要性,说不定什么时候就拯救了你写了好几天的代码。hard后面跟的版本号没必要全部写出来,git会自动去补全匹配。

$ git log

$ git reset --hard

3、管理修改

我们来一个操作,第一次修改 -> git add -> 第二次修改 -> git commit

然后git status查看状态,咦,怎么第二次的修改没有被提交?

Git管理的是修改,当你用git add命令后,在工作区的第一次修改被放入暂存区,准备提交,但是,在工作区的第二次修改并没有放入暂存区,所以,git commit只负责把暂存区的修改提交了,也就是第一次的修改被提交了,第二次的修改不会被提交。

提交后,用git diff HEAD -- readme.txt命令可以查看工作区和版本库里面最新版本的区别。

那怎么提交第二次修改呢?你可以继续git add再git commit,也可以别着急提交第一次修改,先git add第二次修改,再git commit,就相当于把两次修改合并后一块提交了:

第一次修改 -> git add -> 第二次修改 -> git add -> git commit

4、撤销修改

$ git checkout -- readme.txt

令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commit或git add时的状态。

git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令。

5、删除文件

$ git rm test.txt

$ git commit -m "remove test.txt"

**bug分支**

情景:undong.txt 工作还没做完(暂存区有很多add文件,这时还没有commit),这时接收到一个必须在两小时内完成的bug文件(和之前的工作无关)

1 这时就要保存工作现场 git stash

2 添加新分支 git branch fixbug

3 切换到这个分支 git checkout fixbug

4 git add bug文件

5 提交 git commit

6 删除该分支(一般情况应该合并)

查看分支现场 git

7 修复之前的分支 git stash pop