git进阶使用

修改文件

我们再本地修改了README.md文件,我们是需要重新提交的,假如我们修改的文件过多,忘记修改了哪些文件怎么处理呢?

使用git status来查看Git目前的状态。

可以看到没有内容需要提交,工作树干净。这个时候我们在本地仓库新建一个README.txt,并修改一下README.md,再使用git status看看会出现什么结果。

可以看到git帮助我们检查到了两个问题,本地仓库中有README.txt没有提交,本地仓库中的README.md发生了修改。可以使用下面的指令查看README.md做了哪些修改。

$ git diff README.md

红色的是修改之前的,绿色的是修改之后的。下一步进行提交即可。

git add README.md README.txt    #可以同时提交两个文件
git commit -m "修改了README.md"
git push -u ml main

这样我们对README.md修改进行了合并,对README.txt进行了上传。

那么我们不想要README.txt的话,如何删除这个文件呢,在本地仓库我们直接delete进行删除,然后如何git status进行查看。

可以看到,git已经察觉到我们本地删除了README.txt,那么下一步就是把远程仓库的README.txt进行删除,输入下面指令。

$ git rm README.txt

这个时候在本地发送出清楚README.txt的指令,但是还没有推送到远程仓库,使用git status查看。

当你运行 git commit 命令提交这个变更时,Git 会将该删除操作作为一个提交保存下来,并从仓库中移除该文件。如果你想取消这个删除操作,可以运行 git restore --staged README.txt 命令将文件从暂存区中移除,也就是取消删除。我们使用下面说明并提交到远程仓库即可。

$ git commit -m "删除README.txt"
$ git push -u ml main

版本控制

使用版本控制我们可以清晰地回到原来修改文章的位置,比如,我们想恢复README.txt这个文件,我们需要进行下面的步骤。

查看提交历史:使用git log命令查看提交历史记录,获取要回滚的提交的哈希值。

$ git log

我们找到类回滚位置的哈希值,下一步我们使用git revert命令回滚到指定的提交。

$ git revert f2e466339d8c23f02aa77e4fde987f16737de2f9

接着出现一个vim界面,我们可以看到第一行便是我们的撤销指令,直接退出即可,先按ESC,后输入”:q!”退出即可。

使用git status查看当前git的状态,可以看到本地仓库领先远程仓库,使用下面指令推送到远程仓库。这样我们在远端仓库重新看到了README.txt。

$ git push -u ml main

分支管理

新人菜菜来到公司,为了防止他对项目主分支造成不可估计的影响,我们给他创建了一个新的分支caicai。使用下面的代码创建分支。

$ git checkout -b caicai

使用这行代码我们在本地创建了一个caicai的分支,并且自动启动这个分支,可以看到我们的后缀是菜菜。使用git branch查看仓库中存在哪些分支。

$ git branch

使用下面的代码切换分支

$ git checkout main

那么本地仓库的caicai分支要提交代码到远程仓库的caicai分支,要怎么做呢,如果caicai写了一篇文章叫做《菜菜传记》,那么怎么上传到caicai分支呢,很简单,还是一样的步骤。

$ git add caicai.md
$ git commit -m "上传菜菜传记"
$ git push -u ml caicai

这样我们就在git中增加了caicai传记,在caicai这个分支中,我们可以看到成功出现了caicai.md这个文章,但是在我们的main主分支中没有caicai.md这个文章。这个时候我们在github上可以看到caicai提交的文件,我们进行审查即可进行合并到主分支,这个时候我们就可以在主分支看到caicai.md。

我们也可以使用下面指令来合并分支。我们先转入到main分支,然后对caicai分支进行合并.

$ git checkout main
$ git merge caicai
$ git commit -m "合并caicai"
$ gir push -u ml main

合并完成之后caicai分支已经对我们没有用了,可以选择性删除,使用下面的指令.

$ git branch -d caicai

可以使用下面的代码删除远端的仓库

#查看远端仓库的分支
$ git branch -r
#删除远端仓库的分支
$ git push ml --delete caicai

常见指令

指令 作用
git init 在当前目录初始化一个新的Git仓库。
git add 将文件添加到暂存区
git commit -m “message” 将暂存区中的文件提交到版本历史,附带一条提交信息。
git status 显示工作树和暂存区的状态
git log 显示提交历史记录。
git branch 显示本地分支列表
git branch -r 显示远端仓库分支
git checkout “branch name” 切换到指定分支
git merge “branch name” 将指定分支的修改合并到当前分支。
git pull 从远程仓库获取最新的提交并合并到当前分支。(需要注意分支对应)
git push -u “仓库名” “branch name” 将本地提交推送到远程仓库
git remote add “name” “url” 添加一个远程仓库
git remote -v 显示远程仓库的详细信息。
git diff 显示工作树和暂存区之间的差异。
git revert “hash code” 撤销提交
git status 查看git 状态
git clone “url 地址” 克隆仓库

Share