git的使用说明

首先咱们新建一个文件夹git ,而后在vscode中打开(git Bash若是没有配置到全局须要配置一下环境,固然你也能够直接在git Bash中执行命令),执行在命令行中执行git init 初始化咱们的仓库,执行后会出现一个.git的文件(默认是隐藏的) 而后咱们在仓库中在文件夹learngit 中新建一个readme.txt文件 咱们执行git status查看咱们仓库的状态 git

此时显示红色,咱们能够看到有多少文件没有被添加到暂存去以及有多少文件没有被提交 执行git add readme.txt命令,将文件添加到暂存区,git add . 是将全部未被添加到暂存区的文件都提交到暂存区
,咱们能够看到此时变成绿色说明以及添加到暂存区。 git commit -m 'git的学习' 执行这条命令能够将在暂存区的文件提交到本地仓库中去,-m后面是这次提交的描述 此时再执行git status 咱们发现暂存区没有没被提交的文件了
而后咱们修改一下readme.txt文件,执行git diff readme.txt,咱们能够查看修改的内容
执行git log 命令,咱们能够查看咱们仓库的版本,方便咱们之后回到以前的版本,图中黄色部分是咱们仓库版本的id
git reflog 这条命令能够将查看咱们全部的修改,git log--pretty=oneline git log --graph --pretty=oneline 这两条命令,执行第一条命令可让记录一行一行的显示处理,执行第二条让记录以图表方式显示,便于咱们的查看

执行 git reset --hard HEAD^ 命令,咱们能够回退到上一个版本库,git reset --hard HEAD^^回退到上上个版本,以此类退,要回退到前一百个版本咱们能够执行git reset --hard HEAD~100 命令,很是方便的。github

也能够执行 git reset --hard d3e65(id取前五位就能够)回到某一个指定的版本

下图为git仓库的基本原理:index为暂存区,HEAD指向master主分支 vim

加入咱们将文件中的代码修改的很乱,咱们能够执行git checkout -- readme.txt 这条命令,将文件回退到以前暂存区的那个版本,假如你已经将文件add到暂存区,此时咱们执行git checkout -- readme.txt 命令,将文件回退到没有添加到暂存区时的状态,若是要删除某个文件咱们能够执行这条命令 rm a.txt

接下来咱们就将本地仓库提交到远程github上去,这边我再github上新建一个testgit的一个仓库,而后将本地仓库与github远程仓库创建链接,执行这条命令 git remote add origin github.com/ganjianghua… 接下来咱们将本地仓库推送到github上去,执行 git push -u origin master (第一次提交加一个-u)这条命令便可提交到github上,此时若是出现如同所示的错误,那是由于你没有将github仓库上原有的readme.txt等文件不在你工做目录上。缓存

咱们能够执行git pull --rebase origin master命令,将代码合并,这样咱们就能够成功推送文件到github上去 若是咱们时使用git clone github.com/ganjianghua… clone 命令将咱们项目从github上拉下来。

执行git branch命令能够查看咱们仓库的分支,在开发的时候分支时很是有用的,好比咱们能够建立开发分支,测试分支等,等功能完成后再合并到主分支上。 执行git branch dev命令,建立一个开发分支,而后咱们执行git checkout dev命令,切换到开发分支上,在开发分 支上对文件进行修改,不会改变其余分支上的文件,当咱们修改完成后,咱们能够合并分到主分支上,这样就完成了文件的修改,分支对咱们是很是有用的。咱们还能够执行git checkout -b test 建立分支并切换到该分支,这样就 少执行一行命令。当咱们项目完成后,咱们执行git merge test,将test分支合并到当前分支上去,如同所示学习

若是开发完了,那咱们能够执行git branch -D test命令,将分支删除,分支是否是很方便呢?

解决一些冲突 当咱们在分支上修改了文件内容,而后咱们又切换到主分支上进行了修改,而后咱们合并分支,就会产生一个冲突测试

此时咱们选择正确的代码,删除掉不须要的,而后咱们在提交就ok了 若是咱们须要停下手头的工做,去解决一个bug,咱们git stash让分支暂时中止,咱们去解决bug完后再回来,使用 git stash list 命令咱们能够查看咱们当时暂停下来的工做,而后执行git stash pop命令,咱们就能够继续以前的 工做,是否是很是nice呢? 当咱们在主分支上添加了1,2两个文件,而后又在dev分支上添加5,6文件,后面又切换到主分支上添加了3,4文件 ,那么咱们合并后将会是1,2,5,6,3,4这样的提交的顺序,那咱们能够更换它的基点,在主分支上执行 git rebase master 这条命令,咱们就能够把几点调整到master最后提交的记录为几点,这样顺序就变为1,2,3,4,5,6 这样咱们就能够将git的提交记录变得更简单,更清爽。

给上git操做的命令 git学会了吗? 写的很差欢迎留言指出,但愿能够帮到你。 $ cd:e // 切换盘符命令行

$ cd .. // 回到文件上一层(注: cd与..中间有个空格)3d

$ cd ~ // 回到当前目录的主目录code

$ mkdir Git // 建立文件夹Gitcdn

$ touch fileName // 新建文件

$ vi fileName // 编辑文件

$ press i button // 开始进入编辑状态

$ press the Esc button // 退出vim编辑区

$ :wq // 退出编辑状态, 回到命令窗口

$ mkdir learngit // 建立文件夹learngit

$ pwd // 显示当前路径/e/Git/learngit

$ git init // 将当前目录变成一个Git能够管理的仓库

$ touch+文件名 // 直接新建一个文件

$ git add readme.txt // 将文件添加到Git仓库(把文件修改添加到暂存区)

$ git commit -m "wrote a readme.txt." // 将文件提交到仓库(把暂存区的全部内容提交到当前分支)

$ git add file1.txt // 添加file1.txt文件

$ git add file2.txt file3.txt // 同时添加file2.txt和file3.txt两个文件

$ git commit -m "add 3 files." // 一次性提交3个文件

  1. 时光穿梭机:

// 2.1 版本回退

$ git status // 查看当前仓库状态(仓库下的工做区文件是否被修改过)

$ git diff readme.txt // 查看工做区的readme.txt与缓存区的readme.txt的区别

$ git log // 查看最近到最远的提交记录(详情: commit id + Author + Date + comment)

$ git log --pretty=oneline // 查看最近到最远的提交记录(简写:commit id + comment)

$ git reset --hard HEAD^ // 回到上一个版本(HEAD: 当前版本,HEAD^: 上一个版本,HEAD~100: 往上100个版本)

$ git reset --hard 1234567 // 回到指定版本号commit id(此处:commit id 假设为1234567******,Git会根据commit id的前几位自动寻找对应的版本)

$ cat readme.txt // 查看readme.txt的内容

$ git reflog // 查看每一次命令记录历史,确保能回到任意版本  

// 2.2 工做区与暂存区

$ git diff readme.txt // 比较工做区(working directory)和暂存区(stage/index)的区别

$ git diff --cached // 比较暂存区(stage/index)和分支(master)的区别

// 2.3 管理修改(详见1. 建立版本库中的命令)

// 2.4 撤销修改

$ git checkout -- readme.txt // 撤销修改:1. 文件在添加到缓存区前修改,则回退到原工做区状态;2. 文件在添加到缓存区后修改,则回退到原缓存区状态。也便是将readme.txt撤回到最近一次git add或git commit状态(注:--表示在当前分支,若是没有,则切换到另外一个分支)

$ cat readme.txt // 查看文件内容

$ git reset HEAD readme.txt // 1. 回退到最新版本;2. 将暂存区的修改回退到工做区

// 2.5 删除文件

$ rm test.txt // 删除工做区文件(相似于手动删除)

$ git status // 查看当前工做区与缓存区状态

$ git rm test.txt // 状况1:确认删除

$ git commit -m "remove test.txt" // 状况1:确认删除后,提交到版本库

$ git checkout -- readme.txt // 状况2:误删,须要回退(即:用版本库里的版本替换工做区的版本)

// 3. 远程仓库

// 3.1 添加远程库

git remote add origin git@server-name:path/repo-name.git // 关联一个远程仓库,如:$ git remote add origin git@github.com:ChrisLeejing/learngit.git

git push -u origin master // 第一次推送master分支的全部内容

相关文章
相关标签/搜索