持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天,点击查看活动详情
目录
Git常用命令
git stash git reset git checkout git branch git merge git rebase git remote git fetch git pull git push git flow
Git常用命令
git stash
使用场景
git stash,在我们的开发工程中,非常有用.比如我们现在正在dev分支开发功能,此时,测试反馈说,我们线上app出现了重要bug,需要及时处理.dev分支功能还未开发完成,虽然你可以把代码提交到dev本地仓库 或者远程仓库上.但是相对来说,不算是好的解决方案.
此时
git stash就可以帮大忙了.
我们可以使用
git stash,把我们开发内容直接暂存到 堆栈区,并恢复工作目录以匹配HEAD提交.可以理解为git stash,把我们的内容原封不动的放在里,独立的中间站.也会清除我们workspace工作区修改的内容.这样我们就可以轻松去处理问题.然后,处理完成后,不管在哪个分支上,我们都可以通过git stash apply或者git stash pop命令,来取出我们之前存放的内容,并同步到当前的分支上.是不是很方便呢,下面我们来详细的介绍一下
常用命令
-
git stash
切记
git stash,只能提交未被git commit之前的代码. 你可以直接使用git stash,也可以在使用过git add后,使用git stash.执行后如下所示Saved working directory and index state WIP on master: c6cc106 添加ts.sh文件 -
git stash save
作用和
git stash是一样的,区别就是加了注释 eg:git stash save "测试"执行命令后,如下所示stash@{0}: On master: 测试 -
git stash list
查看当前stash中存储的记录 eg:
git stash liststash@{0}: WIP on master: 7032b13 测试,使用了 commit 之后 ,再使用git stash 是否可以生效 stash@{1}: WIP on master: c6cc106 添加ts.sh文件 -
git stash pop
将当前stash中的内容弹出,并应用到当前分支对应的工作目录上。也就是无论你此时在项目中哪一层级的目录下,执行了git stash pop后,都会把存在stash中,最新的内容,同步到当前分支工作目录上
注意: 该命令将堆栈中最近保存的内容删除(栈是先进后出) eg:git stash pop+git stash pop stash@{n}来取出想要的内容 n:可以通过git stash list命令来获取. -
git stash apply
这个命令功能和git stash pop命令是相同,区别在于它不会将内容删除与堆栈中,可以重复使用 eg:
git stash aplly+git stash apply + stash@{n}来取出想要的内容 n:可以通过git stash list命令来获取. -
git stash drop
git stash drop stash@{n}将指定index的储藏从储藏记录列表中删除
-
git stash clear
清除堆栈中的所有内容
-
git stash show
git stash show stash@{n}查看指定的stash和当前目录差异,当然git stash show,就是查看最新的stash和当前目录差异 -
git stash branch 分支名字
从最新的stash创建分支。 eg:
git stash branch test
git reset
git reset 主要用于本地仓库版本回退
git reset --mixedgit reset --softgit reset --hard对于这三种模式,我这里就不一一讲解了,Git Reset 三种模式,这篇文章讲的很详细,喜欢的可以看看.
git checkout
# 以当前分支的head为基准,创建dev分支
$ git checkout -b dev
# 从远程dev分支取得到本地分支dev
$ git checkout -b dev origin/dev
# 切换到dev分支
$ git checkout dev
# 放弃当前对文件file_name的修改
$ git checkout dev file_name
# 取文件file_name的 在commit_id是的版本。commit_id为 git commit 时的sha值。
$ git checkout commit_id file_name
# 命令把test从HEAD中签出.
$ git checkout -- test
#这条命令把 当前目录所有修改的文件 从HEAD中签出并且把它恢复成未修改时的样子.
#注意:在使用 git checkout 时,如果其对应的文件被修改过,那么该修改会被覆盖掉。
$ git checkout .
git branch
-
git branch获取本地仓库分支. * dev master
*指向的是当前的分支 -
git branch -a
查看远程和本地仓库的分支
-
git branch -r查看远程仓库分支
-
git branch branch_name创建分支,branch_name分支名字
-
git branch -m dev change_dev修改dev分支名字为change_dev
-
git branch -d branch_name删除本地分支
-
git push origin --delect dev删除远程分支
-
git branch -v dev查看dev分支最后一次提交记录
-
git branch -merged查看哪些分支合并入当前分支
-
git branch -no-merged查看哪些分支未合并入当前分支
git merge
-
git merge branch_name把需要合并的分支,合并到当前分支
git rebase
git remote
-
git remote -vorigin https://gitee.com/hot_night/article_materials.git (fetch) origin https://gitee.com/hot_night/article_materials.git (push) origin: 远程仓库的别名 fetch: 用于用户拉取代码 push: 用于用户推送代码 -
git remote add <name> <url>默认我们添加远程仓库,使用的命令是
git remote add origin https://url
当我们想把自己的仓库.设置多个远程仓库的时候.可以使用以下方式
git remote add code https://urldddd- 这样我们在提交的时候,修改成
git push code master
git remote set-url --add origin https://url- 这样提交,就正常提交就行
git push origin master
git fetch
git fetch
同步远程仓库的代码分支到本地仓库
git pull
git pull origin master
把远程仓库代码同步到本地代码
git pull origin master:dev
把远程master分支同步到本地dev分支
git push
git push origin master
推送到远程master分支上
git push --force origin master
强制把本地分支代码,推送到远程master仓库