Git常用命令

127 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

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
  • 这样我们可以精准拉取指定的某一个版本.适用于运维同学部署指定版本.