Git 指令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| 列出所有本地分支 git branch 删除分支 git branch -d [branch-name] 例如: git branch -d dev-peppa-fixGFbug 删除远程分支 git push origin -d dev-peppa-fixGFbug 新建一个分支,但依然停留在当前分支 git branch [branch-name] 切换到指定分支,并更新工作区 git checkout [branch-name]
拉代码 git pull
恢复暂存区的指定文件到工作区 git checkout [file] 恢复暂存区的所有文件到工作区 git checkout .
提交工作区自上次commit之后的变化,直接到仓库区 git commit -a 提交暂存区到仓库区 git commit -m [message] 添加指定文件到暂存区 git add [file1] [file2] ...
上传本地指定分支到远程仓库 git push [remote] [branch]
显示有变更的文件 git status :命令显示工作目录和暂存区的状态。它让我们可以查看哪些更改已提交暂存区,哪些尚未提交暂存区,以及 Git 未跟踪哪些文件。
显示当前分支的版本历史 git log 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致 git reset --hard [commit]
提交流程 git commit -a git pull git push 如果git pull 失败 有人和我同时修改了某个文件 git pull origin feature-ep-new --rebase(解决冲突) git rebase --continue git commit -a -m git push
撤销错误操作 git reflog 查看历史变更记录 git reset --hard 40a9jj(hash)
查看log git log --pretty=oneline --all --graph --abbrev-commit
|
https://www.cnblogs.com/ellen-mylife/p/12794245.html
https://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html
https://blog.csdn.net/dingyi4815313/article/details/114068189
Fatal: Not possible to fast-forward, aborting - 简书](https://www.jianshu.com/p/5f4772dc60c2)
Git status 查看仓库状态——迹忆客
Git 删除本地或远程分支
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| 场景1 无干扰提交文件 git diff //查看这次我都改动了什么,也就是工作区和暂存区的区别 git commit -a -m 'this is a submit' //从工作区到暂存区到本地仓库 git pull //远端如果有修改也fetch merge 了 git push
使用场景2 查看一下当前状态, git branch git diff git status git log git diff --cached 或 git diff --staged 查看暂存区和上一次commit的区别 git diff HEAD 查看已缓存的与未缓存的与上一次commit所有改动: //以上查看的都是本地记录的当前的一些情况 git branch -a git pull git log //会把其他分支的修改记录也显示,但是不影响当前分支当前工作区本地仓库内容
使用场景3 自己分支commit成功,但是push远端产生冲突 git pull 不能正确fetch + merge git pull origin feature-ep-new --rebase // 这时候本地工作区是合并的内容 本地暂存区和仓库呢 // 需要再add commit 才能push还是直接push // 仓库也是合并的内容了,应该可以直接push了 git push
使用场景4 只想commit一部分文件,且要解决远程冲突 git add a.cpp git commit -m 'change a' git commit -a -m 'change all' git checkout -b newbranch // 这时这个branch应该保存了全部改动
git checkout oribranch git reflog //查到只改a的commit id git reset --hard hashid //此时应该只有a改了,其他还是原样 git pull //合并冲突 git push
自己再用的时候把newbranch merge到当前branch
使用场景5 更新并且看看当前branch更新了啥 git pull //拉取自己branch远程的更新和其他branch更新的信息 //其他branch的更新会从git log上显示,但是不会更新本地自己的branch git log git diff hashID1 hashID2 //查看两次提交更新了什么
场景六 git diff git diff //不加参数即默认比较工作区与暂存区 git diff hashID1 hashID2 //查看两次提交更新了什么 git diff HEAD//工作区与最新本地commit的(HEAD)区别 git diff --cached 或 git diff --staged //显示暂存区(已add但未commit文件)和最后一次commit(HEAD)之间的所有不相同文件的增删改 git diff <分支名1> <分支名2> //比较两个分支上最后 commit 的内容的差别
场景七 checkout 部分文件 git checkout hashID file git checkout BestBuild_2023-11-08-16 ./filter.cpp 看diff没有区别 但是需要commit 然后push
|
git–本地分支与远程分支_Andyato0520的博客-CSDN博客
1 2
| 拉代码 git clone --branch <branchname> --depth=1 romete.git
|
1 2 3 4 5 6 7
| merge 分支,将主分支 dev-video merge到自己的分支dev-video-attlit上: git checkout dev-video git pull git checkout dev-video-attlit git pull git merge dev-video git push
|
1 2 3 4 5 6 7 8 9 10 11 12
| 从当前分支master 拉出新分支 dev $git checkout master $git pull
$git checkout -b dev 新建分支,此时分支已经clone了master的内容 $git push origin dev 推送到远端 $git pull 想从远端dev拉代码到本地dev $git branch --set-upstream-to=origin/dev (关联远端? $git pull
单纯新建分支 git branch dev
|
git从已有分支拉新分支开发_git 拉取新分支_苦咖啡-bit的博客-CSDN博客
https://www.runoob.com/git/git-branch.html
git 拉取远程指定分支 pull本地不存在的分支 - 哈姆PP - 博客园
1 2 3
| 反正就是解决不了冲突或者不在分支上 git checkout master git reset --hard origin/master
|
1 2 3 4 5
| 删除git分支 1 git branch --delete dev-video-attlit 删除本地分支 如果没有完全merge 需要强制删除 git branch -D dev-video-attlit 2 git push origin --delete dev-video-attlit 删除远程分支 3 git branch --delete --remotes dev-video-attllit 删除之间的联系
|
1 2 3 4 5 6 7 8 9
| 关于tag tag是git版本库的一个标记,指向某个commit id标记的 快照记录指针 tag 默认打在最近一次commit上 新建tag git tag v1.6 指定commit id打tag git tag v0.9 f52c633(hash 根据某个commit创建本地分支(同样也可以根据tag创建新分支 git checkout 12345678 -b newBranch
|
Git中tag的用法及作用简介 - 之鹿喵 - 博客园
Git: git tag 使用小结(给发布版本打标记,切换并修改某个历史版本) - 夜行过客 - 博客园
Git配合GPG签名
1 2 3 4 5 6 7
| 当配置好GPG之后 每次commit git commit -a -S -m "My commit msg" 如果不想在每次提交时都键入-S标志,则可以告诉 Git 自动签名您的提交: git config --global commit.gpgsign true 如果忘记了签名并且已经commit git rebase --exec "git commit --amend --no-edit -n -S" -i hashID 一步步补签再push
|
https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E9%87%8D%E5%86%99%E5%8E%86%E5%8F%B2
git 配合beyond compare
mac 安装位置如下
1
| git config --global mergetool.bc4.cmd '"/Applications/Beyond Compare.app/Contents/MacOS/bcomp" "$LOCAL" "$REMOTE"'
|
https://blog.csdn.net/hjp9221/article/details/123561864