文章目录
1.Git
简介
Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 [1] Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
版本控制系统如何帮我们控制版本?
我们需要进行版本控制的文件都要提交到一个**仓库(其实就是一个隐藏文件夹)**里面,我们对文件做出的修改都会被这个版本控制系统侦测到,如果我们要保留这个版本的文件,就要通过版本控制系统提供的命令把文件提交到仓库里面,然后版本控制系统就会自动为我们提交的文件打上版本号。
仓库分几种?
本地仓库:建立在本地的文件夹。
远程仓库:建立在互联网的服务器内的文件夹。(Github)
Git 思维导图
2. Git基本操作
git log --graph 查看log提交记录
git init 初始化
git status 查看仓库当前的状态
git diff 查看具体修改了什么内容
git diff HEAD – 命令可以查看工作区和版本库里面最新版本的区别
git add 添加到暂存
git add -f 假如文件被忽略这样可以强制添加
git commit -m “balabalabala” 提交暂存区的文件到本地仓库
git log --graph --pretty=oneline 查看日志
git reset --hard HEAD^ (git reset --hard 版本编号) 版本回退
git reset HEAD 添加到了暂存区时,想丢弃修改
git checkout – 当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时
git rm 从版本库中删除该文件(然后commit)
git remote 查看远程库信息
git remote -v 更加详细的查看
git remote add origin 地址 本地关联远程库
git clone 地址 克隆远程库
git branch 查看当前分支
git branch 创建分支
git checkout 切换分支
git checkout -b 我们创建分支,然后切换到分支
git merge 合并分支到当前分支
git merge --no-ff -m “xxxxx” 合并分支时,加上–no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并
git branch -d 删除分支
git branch -D 强行删除
git pull origin 拉取
git push origin 推送
git stash 把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash list 查看贮藏区
git stash apply 恢复后,stash内容并不删除
git stash drop 删除贮藏区的内容
git stash pop 恢复的同时把stash内容也删了
你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令 git stash apply stash@{0}
git rebase 变基(线路变得好看)
git tag 打标签
git tag -a -m “balabalbal…” 可以指定标签信息
git tag 查看所有标签
git show 查看该标签版本信息
git tag -d 删除标签
git push origin 推送标签到远程
git push origin --tags 一次性推送全部尚未推送到远程的本地标签
git push origin :refs/tags/ 可以删除一个远程标签
在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。
git reflog用来记录你的每一次命令
操作思维导图:
3.分支管理
分支基本操作
git branch:查看分支(当前所在分支前面会有一个星号)
git checkout 分支名:切换分支
git branch -b 分支名:创建分支
git branch -d 分支名:删除分支
合并分支冲突
- 合并冲突
vi code.txt 手动修改冲突的文件
git add code.txt
git commit -m “解决冲突”
git log
bug分支管理
- git stash 隐藏当前分支
- git checkout master 创建404 bug分支来修复任务,切回到master分支
- git checkout -b 404-bug 创建404bug分支
- 在分支上删除最后一行的内容
- git add . git.commit -m ‘修复404bug’ 提交404-bug分支
- 合并分支
6.1 git checkout master 切回到master分支
6.2 git merge --no-ff -m ‘merge bug fix404’ 合并404-bug分支内容(禁止快速合并模型,有一次commint提交记录)
6.2 然后查看master的readme。txt文件内容 - git branch -d 404-bug 在master上删除404-bug分支
- 重新恢复dev分支
8.1. git checkout dev git status 切回dev分支并查看分支状态,发现工作区是干净的
8.2 还原工作现场 git stash list
8.3 恢复工作内容并删除缓存内容
【git stash apply ,git stash drop删除】=【git stash pop】
https://blog.csdn.net/yiyijianxian/article/details/83341833
4.Github使用
5. 工作中使用
6. 分支代码转移 git cherry-pick
对于多分支的代码库,将代码从一个分支转移到另一个分支是常见需求。
参考http://www.ruanyifeng.com/blog/2020/04/git-cherry-pick.html
这时分两种情况。一种情况是,你需要另一个分支的所有代码变动,那么就采用合并(git merge)。另一种情况是,你只需要部分代码变动(某几个提交),这时可以采用 Cherry pick。
git cherry-pick命令的作用,就是将指定的提交(commit)应用于其他分支。
git cherry-pick <commitHash>
git cherry-pick --abort
放弃
6. git rebase 简化提交历史
通过git rebase -i 将本地的多次提交合并为一个,以简化提交历史
git checkout master
git pull
git checkout local
git rebase -i HEAD~2 //合并提交 --- 2表示合并两个
git rebase master---->解决冲突--->git rebase --continue
git checkout master
git merge local
git push
7.回滚指定版本
git log --pretty=oneline
git reset --hard <commit hash>
git push -f origin master
8.撤销本次commit
git reset HEAD~
9.贡献者协作
http://jupiter.douyu.com/jupiter/1.4contribute.html#_1-4-1-fork-%E4%BB%A3%E7%A0%81