本文已参与「新人创作礼」活动,一起开启掘金创作之路。
git显示当前分支的创建来源分支
// git显示当前分支的创建来源分支
git reflog --grep dev-v1.3.4
git reflog show --date=local test
将本地文件添加到git
git init //把这个目录变成Git可以管理的仓库
git add README.md //文件添加到仓库
git add . //不但可以跟单一文件,还可以跟通配符,更可以跟目录。一个点就把当前目录下所有未追踪的文件全部add了
git commit -m "first commit" //把文件提交到仓库
git remote add origin git@172.16.101.124:luqinghua/d1web.git //关联远程仓库
git push -u origin master //把本地库的所有内容推送到远程库上
分支
列出所有本地分支 git branch
出所有远程分支 git branch -r
列出所有本地分支和远程分支 git branch -a
新建一个分支,但依然停留在当前分支 git branch [branch-name]
以远程分支为基础新建一个分支,并切换到该分支
git checkout -b [branch] origin/[remote-branch]
新建一个分支,指向指定commit
git branch [branch] [commit]
新建一个分支,与指定的远程分支建立追踪关系
git branch --track [branch] [remote-branch]
切换到指定分支,并更新工作区
git checkout [branch-name]
# 切换到上一个分支 git checkout -
创建新分支
-- git pull
-- 获取最新远程分支并与本地分支合并 $ git get pull
--创建新分支并切换到此分支 $ git checkout -b [branch]
--上传本地指定分支到远程仓库 $ git push -u origin [branch]
删除分支
--删除本地分支 git branch -d [branch-name]
--删除远程分支 git push origin -d 440 (或$ git push origin --delete [branch-name])
--移除远程仓库上不存在的分支 git fetch -p
合并分支
git checkout dev 切换分支
git pull 拉取
git merge --no-ff course 将course合并到当前版本
git push -u origin [branch] 上传合并后分支
将本地的冲突文件冲掉
不仅需要reset到MERGE-HEAD或者HEAD,还需要--hard。没有后面的hard,不会冲掉本地工作区。只会冲掉stage区
git reset --hard FETCH_HEAD
Git 回退代码到某次 commit
1、查询需要回退的 commit 记录
(说明:commit 单词后面红框里的十六进制字符串,就是每次提交代码时,git生成的唯一记录编码。Git 可以通过该编码准确锁定每次的提交记录)
2、回退代码到某次 commit
(其中,commitID 根据实际情况,确定需要回退的 commit 记录ID。)
git log // 查看提交的记录
// git reset --hard commitID
git reset --hard dcd2bb446afd31e620866b2e49ba05bff108c1de
Git Tag
tag 和branch的区别
- Git tag是一系列commit的中的一个点,只能查看,不能移动。
- branch是一系列串联的commit的线。
git tag的用法
- 我们常常在代码封板时,使用git 创建一个tag ,这样一个不可修改的历史代码版本就像被我们封存起来一样,不论是运维发布拉取,或者以后的代码版本管理,都是十分方便的
创建tag
- git tag -a -m "runoob.com标签"
- git tag -a V1.2 -m ‘release 1.2’上面的命令我们成功创建了本地一个版本 V1.2 ,并且添加了附注信息 ‘release 1.2’
查看tag
- git tag
- 要显示附注信息,我们需要用 show 指令来查看
- git show V1.2
- 但是目前这个标签仅仅是提交到了本地git仓库.如何同步到远程代码库
- git push origin --tags
- 如果刚刚同步上去,你缺发现一个致命bug ,需要重新打版本,现在还为时不晚.
- git tag -d V1.2
- 到这一步我们只是删除了本地 V1.2的版本,可是线上V1.2的版本还是存在,如何办?这时我们可以推送的空的同名版本到线下,达到删除线上版本的目标:
- git push origin :refs/tags/V1.2
- 如何获取远程版本?
- git fetch origin tag V1.2
- 这样我们可以精准拉取指定的某一个版本.适用于运维同学部署指定版本.