加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

git命令总结

发布时间:2020-12-14 16:38:08 所属栏目:百科 来源:网络整理
导读:廖雪峰官方网站--Git教程: 本文内容来自对廖雪峰老师Git教程总结。 创建版本库 初始化一个Git仓库,使用 git init 命令。 添加文件到Git仓库: 第一步,使用命令 git add 。 第二步,使用命令 git commit -m "xx" ,完成。 版本回退 HEAD 指向的版本就是当前

廖雪峰官方网站--Git教程:

本文内容来自对廖雪峰老师Git教程总结。

创建版本库

初始化一个Git仓库,使用git init命令。

添加文件到Git仓库:

  • 第一步,使用命令git add
  • 第二步,使用命令git commit -m "xx",完成。

版本回退

HEAD指向的版本就是当前的版本。使用命令git reset --hard commit_id

回到上个版本git reset --hard HEAD^
回到上上个版本HEAD^^
回到往上10个版本HEAD~10

  • 穿梭前,用git log可以查看提交历史。
  • 重返未来,用git reflog查看命令历史。

撤销修改

  • 使用git checkout -- 可以丢弃工作区的修改。
  • 如果已经使用git add将修改的文件添加到暂存区了,还未提交。

可以使用git reset HEAD 把暂存区的修改撤销掉,重新放回工作区。
再次使用git checkout -- 丢弃工作区的修改。

  • 如果修改了文件,还从暂存区提交到了版本库,那就使用版本回退。

删除文件

使用文件管理器或者rm file命令删除文件。

但是,你发现你删错了,可以使用:git checkout -- file来恢复工作区。
如果你要真的删除可以使用git rm file然后提交修改就好了。

git rm file是同时删除工作区的文件,并将删除的动作提交到暂存区。

添加远程仓库

要关联一个远程库,使用命令git remote add origin git@github.com:账户/仓库名称.git

第一次用git push -u origin master命令推送master分支的所有内容。

此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改。

创建和合并分支

master分支是一条线,Git用master指向最新的提交,再用HEAD执行master,就能确定当前分支,以及当前分支的提交点。

当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上:

  • 查看分支:git branch
  • 创建分支:git branch
  • 切换分支:git checkout
  • 创建+切换分支:git checkout -b
  • 合并某分支到当前分支:git merge
  • 删除分支:git branch -d

分支冲突解决

<<<<<<< HEAD
Creating a new branch is quick & simple.
=======
Creating a new branch is quick AND simple.
>>>>>>> dev

当发生冲突时,Git会用这样的方式标记处不同分支的内容,我们只需要修改后重新提交即可。

使用带参数的git log可以看到分支的合并情况:

通常,Git会用Fast forward模式,但在这种模式下,删除分之后,会丢掉分支信息。

如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。

$ git merge --no-ff -m "merge with no-ff" dev

可以看到HEAD已经不是切换指针而是有了一个新的版本。

bug分支

当项目发现了bug我们可以创建一个bug分支,修复完成后合并分支,然后将临时分支删除。
但是正在dev上进行的工作还没有提交...

你可以使用git stash将当前的工作现场“储藏”起来,等以后恢复现场后继续工作。(储藏之前你要保证将新的内容已经加到了缓存区了,也就是执行了git add指令。)

查看工作现场:

$ git stash list

使用git stash pop恢复的同时删除stash内容。

多人协作

多人协作的工作模式通常是这样:

首先,可以试图用git push origin branch-name推送自己的修改;

如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

如果合并有冲突,则解决冲突,并在本地提交;

没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!

如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name

这就是多人协作的工作模式,一旦熟悉了,就非常简单。

标签管理

使用git tag 创建标签

$ git tag v1.0

可以使用命令git tag查看所有标签

$ git tag

为之前的版本打上标签

$ git tag  

删除标签

$ git tag -d v1.0

如果推送某个标签到远程,使用命令git push origin
或者一次性推送全部尚未推送到远程的本地标签:

$ git push origin --tags

如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:

$ git tag -d v0.9

然后,从远程删除。删除命令也是push,但是格式如下:

$ git push origin :refs/tags/v0.9

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读