Git 基础学习与使用(下) | 青训营笔记

52 阅读5分钟

这是我参与「 第五届青训营 」伴学笔记创作活动的第 13 天

上一节中对git的相关概念以及常见工作流进行了简单介绍,这里继续进行补充学习~争取再水一篇文(这是可以说的吗doge

提交代码到暂存区:add

添加一个或多个文件到暂存区

git add [fileName]

一次性提交全部改动文件

把当前目录下得所有文件改动都添加到暂存区:

git add .

把当前仓库内所有文件改动都添加到暂存区:

git add -A

不过实际上,以我之前的浅薄经验的话都是用得 git add ./

提交代码到本地仓库:commit

将暂存区的内容提交到本地gt版本仓库中

git commit [fileName] ... -[message]
  • -m 表示的是当前提交的信息
  • -a 对于已经被纳入 git 管理的文件(该文件你之前提交过 commit),那么这个命令就相当于帮你执行了上述 git add -A,你就不用再 add 一下了;对于未被 git 管理过的(也就是新增的文件),那么还是需要你先执行一下 git add -A,才能正确被 commit 到本地 git 库。

我通常直接 git commit -m '简略描述本次提交的工作内容'

ps. 引用文章中提到:如果没有强诉求需要 git addgit commit 一定要分开,那完全可以选择 git commit -am,方便又快捷。

合并远端分支(已经建立联系)

直接执行:

git pull

拉取指定远端分支合并到本地当前分支:

git pull origin branchName

注:origin通常是对远端仓库的命名(也可以用别的)
偶尔会需要解决冲突。

提交代码到远端分支:push

我初次利用Gitee进行开发时,因为组内成员都还不太熟悉使用,我们用了不太规范的开发方式,直接在master分支上进行操作,为后续开发带来了极大的不便,经常需要合并冲突,一旦失误直接影响整个项目组内所有成员的提交【sad
这里我直接引用文章内容:

接下来我们想要把刚创建好得分支推送到远端,一般来说我们可能会需要用到 git push,但我们这是个新分支,根本没和远端仓库建立任何联系,那么我们就需要加点参数,让他们关联上:

  • 推送分支并建立关联关系:git push --set-upstream origin branch1 完事之后我们可以再去远程仓库看一眼就会发现我们创建的新分支已经推上去了。接下来可能会有小伙伴要问了,那如果远端仓库已经有了这个分支名咋整? 这里就分两种:
  1. 一种就是你本地的代码和远端代码没有冲突的情况下,并且你本地有新增提交,那么你可以仍然执行上述命令,这样就会直接将当前本地分支合远程分支关联上,同时把你的改动提交上去。
  2. 另一种就是本地分支和远端分支存在冲突,这个时候你执行上述命令就会出现提示冲突,那么接下来就需要你先把远端当前分支的代码拉下来,解决一下冲突了,就需要用到 git pull 命令了。

查看git日志:log

执行这个命令之后能看到当前分支的提交记录信息(比如commitId和提交的时间描述):

git log

查看之前提交内容:show

git commit -a提交了一次变化(changes),可以用下面的命令显示当前HEAD上的最近一次的提交(commit):

git show

HEAD 表示当前版本
HEAD^ 上一个版本
HEAD^^ 上上一个版本
HEAD^^^ 上上上一个版本
HEAD~n 回撤n个版本

删除提交内容:reset

上一次的改动已经push了

想要删除上次push的内容,可以:

git reset HEAD^ --hard
git push -f [remote] [branch]

但是这样做有一个缺点,该操作不可逆。甚至会使得其他从该仓库pull的人的历史也紊乱,所以建议谨慎使用!!

上一次的改动已经使得push的内容删除了但又后悔了:

因为git对每件事都是有日志的,可以通过

git reflog

这可以看到过去commit的列表,找到想要回到的commit的SHA即可:

git reset --hard SHAxxxxx

还未push

可以将git重置到最后一次提交前的状态并保存:

git reset --soft HEAD@{1}

回滚至某特点版本

先查看git日志,找到对应的commitId,直接回滚

git log
git reset --hard commitId

稍做补充👇

发现作者陌小路提到的这个操作非常适合那时候我们几个负责前端开发的git小白倒霉蛋【doge 图片.png

个人总结

本次较为细致的学习大大弥补了之前实际操作中的不足,很有帮助~
或许无法帮助你获得女朋友但可以获得git技能的文章(前面的内容有多处引用已做标注):女朋友说 Git 玩不明白,怎么办?安排!

回顾我的上一篇文章:Git 基础学习与使用(上) | 青训营笔记