git基本指令使用,git status,git stash,git merge
2020/7/8 9:26:32
本文主要是介绍git基本指令使用,git status,git stash,git merge,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
git log
查看项目历史的信息
git status
git status
命令用于显示工作目录和暂存区的状态。使用此命令能看到哪些修改被暂存到了, 哪些没有, 哪些文件没有被Git tracked到。git status
不显示已经commit到项目历史中去的信息。
git stash
应用场景
- 有部分代码是多余的,想保留以后查看,但是又不想提交到远程分支
- 在进行多分支开发时,比如你在A分支上开发,但是突然发现B分支上有个bug需要修复,以前往往会把A分支上开发一半的功能本地commit,切换到B分支修复bug,然后再切换回A分支继续开发,这样往往log上会有大量不必要的记录。现在可以使用
git stash
将你当前未提交到本地(和服务器)的代码推入到Git的栈中,放心切换到B分支修复代码,完事儿后切换回A分支使用git stash apply
将以前一半的工作应用回来;
git stash(A分支) git pull(B分支) git stash apply (A分支) 复制代码
PS:git stash
命令可以将在当前分支修改的内容放到缓存区中,并会自动建立一个缓存的list集合,方便管理,git stash list
可以看到list下的所有缓存。
git stash list 复制代码实际应用中推荐给每个stash加一个message,用于记录版本,即
git stash save
取代git stash
。如:
git stash save "添加console.log" 复制代码查看所有的缓存
git stash list 复制代码如果想将修改的内容重新释放出来,
git stash apply
和 git stash pop
都可以将修改的内容重新释放出来。
使用git stash apply stash@{x}
,可以将编号x的缓存释放出来,但是该缓存还存在于list中
而 git stash apply
,会将当前分支的最后一次缓存的内容释放出来,但是刚才的记录还存在list中
而 git stash pop
,也会将当前分支的最后一次缓存的内容释放出来,但是刚才的记录会被删除,不存在list中
- 如果你实在实在不想要本地的更改了,可以清除使用如下命令清除所有的stash栈
git stash git stash clear 复制代码
当然也可以使用git stash drop
移除指定的stash栈
git stash drop stash@{1} 复制代码
查看指定stash的提diff
git stash show 复制代码
运行后
git stash show -p
或git stash show --patch
查看指定stash的全部diff
git rebase 冲突
-
step 1. 使用git status命令,查看有哪些文件冲突,然后逐个解决
-
step 2. 打开冲突文件,找到冲突的位置,比如修改用户信息后发送事件 <<<<<<< HEAD b789 ======= b45678910 >>>>>>> 6853e5ff961e684d3a6c02d4d06183b5ff330dcc 冲突标记<<<<<<< (7个<)与=======之间的内容是本地修改, =======与>>>>>>>之间的内容是别人的修改。
-
step 3. 最简单的方式:删除这些冲突标记,然后查看是否有相同的代码,删除即可。
-
step 4. git add . git commit -m “fix conflict”
-
step 5. git rebase --continue
-
step 6. 如果还是有冲突,重复step2-step5
-
step 7. 完成
分支管理
git branch test // 新建分支(test) git branch -d test // 删除分支(test) git branch -D test // 强制删除分支(test) git checkout test // 切换到test分支(test) git branch // 查看本地分支 git branch -r // 查看服务器远程分支 git branch -a // 查看本地和远程分支 git branch -b develop 复制代码
新建分支后先提交到远程服务器才能pull代码,
git push origin test // 提交到远程服务器(test) 复制代码
git merge git cherry-pick
git merge: 合并两个分支,所有内容 git merge master,将master上所有内容合并到当前分支 git cherry-pick: 选择合并一个或者多个commit,比如要从A分支合并某个commit到B分支,A—>B,步骤如下
- step 1: A分支下,git log获取某个commit-id
- step 2: 切换到B分支,git checkout B(执行该命令前一定要保证A分支没有未提交的改动,或未stash的改动)
- step 3: B分支下,执行 git cherry-pick {commit-id}
- step 4: 执行git pull git push 将改动提交到远程分支 示例:我在A分支修改了某个文件,需要同时提交到A分支和B分支,操作如下 A分支下
git add . git commit -m “{commit comment}” git pull -—rebase origin A git push origin A git log git status git checkout B 复制代码
已经切换到B分支 切换到B分支后,首先要去远程B分支获取到最新内容
git pull —-rebase origin B git cherry-pick {commit-id} git pull —-rebase origin B git push origin B 复制代码
git tag(标签)
建议只在主分支打tag,而且每次打tag都以版本发布之后为节点
Gitlab Flow上游优先(学习文档)
www.ruanyifeng.com/blog/2015/1… www.cnblogs.com/cnblogsfans…
小tips
git commit --amend
-“修改commit的描述”- 执行
git pull
命令的时候,如果本地有改动没有commit,就会提示错误 “error: Cannot pull with rebase: You have unstated changes.
”
这篇关于git基本指令使用,git status,git stash,git merge的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法
- 2024-08-21【Linux】gnome桌面环境切换KDE Plasma
- 2024-08-19如何安装 VMware Tools (macOS, Linux, Windows)
- 2024-08-15Linux部署Scrapy教程:入门级指南
- 2024-07-29linux命令行下好用的性能监控工具atop
- 2024-07-04Linux系统上离线升级SSH服务的具体操作步骤-icode9专业技术文章分享
- 2024-06-0600-macOS和Linux安装和管理多个Python版本
- 2024-03-30[译]漫画SELinux概念