上海市建设项目施工审图网站,网站顶一下代码,全国工程招标信息网,宁波公司网站建设常用的Git操作集合 1. 分支操作1.1 查看本地所有分支git branch 1.2 查看所有分支#xff08;包含本地远程仓库#xff09;git branch -a 1.3 切换分支git checkout test 2. 常用基本操作2.1 查看 git 各存储区内(文件)状态git status 2.2 查看工作区与暂存区文件差异git dif… 常用的Git操作集合 1. 分支操作1.1 查看本地所有分支git branch 1.2 查看所有分支包含本地远程仓库git branch -a 1.3 切换分支git checkout test 2. 常用基本操作2.1 查看 git 各存储区内(文件)状态git status 2.2 查看工作区与暂存区文件差异git diff 2.3 临时存储/取消临时存储git stashgit stash pop 2.4 查看 git 记录git loggit log --oneline 3. 撤销操作3.1 撤销addgit reset fileName 3.2 撤销commitgit reset --soft HEAD^git reset --mixed HEAD^git reset --hard HEAD^git reset --hard HEAD~n 3.3 撤销push到远程仓库的commit3.3.1 先确定要取消的commit3.3.2 取消本地仓库commit3.3.3 将本地仓库的更改同步到远程仓 4. 合并 commit4.1 确定要合并的commit的前一个commitId 值4.2 执行 git rebase -i commitId 命令4.3 执行 git log 命令查看commit合并情况 5. 将已提交的commit修改复制到另一个分支上5.1 使用 cherry-pick 复制单个commitgit cherry-pick commitId 5.2 使用 cherry-pick 复制多个commitgit cherry-pick commitId1 commitId2 ... 1. 分支操作
1.1 查看本地所有分支
git branch 被 * 标识的分支就是当前代码所在的分支图示表明当前在 develop 分支。 1.2 查看所有分支包含本地远程仓库
git branch -a 1.3 切换分支
git checkout test
切换到本地的test分支。 git checkout origin master: 切换到远程仓库的master分支。
2. 常用基本操作
2.1 查看 git 各存储区内(文件)状态
git status 2.2 查看工作区与暂存区文件差异
git diff git diff 命令还可以通过指定HEAD指针、版本、文件名等进行更具体的比较。 2.3 临时存储/取消临时存储 有时在开发过程中需要切换分支改BUG但是当前功能又没开发完也不适合提交此时就可以将当前修改临时存储起来切换分支后再去改BUG。 git stash
我们先使用git status看下git各区域的变更状态 然后我们执行git stash 命令后再执行git status观察下git各区域变更状态 可以看到差异只是在工作区git stash 命令将工作区的修改隐藏了临时存储在一个特殊容器里面。
git stash pop
git stash pop命令取消git stash操作将隐藏的对工作区内的修改进行复原。 2.4 查看 git 记录
git log
输入git log 命令会进入一个git提交记录显示窗口可以上下翻页查找输入q退出。
git log --oneline
跟上面的功能一样只是显示的信息更加的简约、紧凑我个人更喜欢这样用。
3. 撤销操作
3.1 撤销add
git reset fileName
撤销已经从工作区添加到暂存区但是还没commit的文件。 我们可以看到执行git reset 命令之后已经add的文件又从暂存区回到了工作区。 我们也可以执行git reset . 取消所有在暂存区文件的add操作。
3.2 撤销commit
git reset --soft HEAD^
撤销commit操作但是不撤销add操作。 可以看到执行完git reset --soft HEAD^命令之后已提交的修改回到了暂存区。
git reset --mixed HEAD^
撤销commit操作同时撤销add操作但是将修改保留在工作区。 可以看到执行完git reset --mixed HEAD^命令之后已提交的修改回到了工作区。
git reset --hard HEAD^
撤销commit操作并撤销add操作同时工作区也不保留修改。 可以看到执行完git reset --hard HEAD^命令之后已提交的修改没了最新的commit也没了。
git reset --hard HEAD~n
撤销最近n次的commit操作并撤销add操作同时工作区也不保留修改。 可以根据我们的需求选择--hard, --soft 或者 --mixed选项下面我们以n取2为例。 可以看到执行完该命令后我们提交的最新的2个commit完全消失了。
3.3 撤销push到远程仓库的commit
撤销push到远程仓库的commit的操作可分为以下3步
3.3.1 先确定要取消的commit
git log --oneline 确定哪几个commit需要取消。 现在我要取消最新的2个commit让commit哈希值为bd04cbb的commit成为最新的commit。
3.3.2 取消本地仓库commit
git reset --soft commitId 我们的commitId值取上一步确定的值执行命令结果如下。可以看到最新的2个commit记录没了。 根据我们的需求--soft 选项也可以换成--hard 或者 --mixed具体区别见3.2. 3.3.3 将本地仓库的更改同步到远程仓
git push origin branchName 此处branchName选择本地分支对应的远端分支将对本地仓内该分支的修改同步到远程仓库。 --force 选项也可以直接简写成 -f 4. 合并 commit
4.1 确定要合并的commit的前一个commitId 值
使用git log --oneline 确定那些commit需要合并我们这里要合并前2个commit。因此我们要取第3个commitID为bd04cbb的值。 4.2 执行 git rebase -i commitId 命令
这里的 commitId 为上一步确定的 bd04cbb。 执行完该命令进入到一个vim编辑界面 在前面未注释的部分的行首我们只保留第一行的pick其他行都改为s代表squash表示对应的commit被压缩。退出编辑模式输入wq! 保存退出。进入另一个vim 编辑框如下。该编辑框的内容为要合并的所有commit的message我们现在需要将所有的commit message合并为一个。 修改如下后保存退出。
4.3 执行 git log 命令查看commit合并情况
此时我们使用git log 命令查看可以看到原来的2个commit已经被合并为一个新的commit。
5. 将已提交的commit修改复制到另一个分支上
我们在上一步在 test 分支提交了一个 commit添加注释。 此时我们切换到了 develop 分支上现在我们要把在 test 分支上的改动复制到 develop 分支上此时我们就需要使用 cherry-pick 命令。
5.1 使用 cherry-pick 复制单个commit
git cherry-pick commitId
我们当前在 develop 分支上对test分支上的commitId 为e5ac3d4 的commit 进行 cherry-pick。 我们从上图可以看到其它分支上的修改被复制了过来在develop分支上产生的新commit有新的commitId。
5.2 使用 cherry-pick 复制多个commit
git cherry-pick commitId1 commitId2 ...
我们现在在develop分支上想把该分支上最新的2个commit复制到test分支上3个及以上个commit也是同理。 先切换到test分支上在test分支上执行命令git cherry-pick a313ca3 9b2284e。 此时我们再来看下commit 日志看到多个commit已经被复制到test分支