Git及Github相关使用
git 基本命令使用(工作区->版本库.git ->远程库)
参考:B站小人物_zzs
git撤销 git push origin master
git log //查看所有提交的版本号
git reset --soft <版本号> //选择这次提交之前的版本号
git log //查看是否成功撤销
git push origin master --force //强制提交当前版本号,以达到撤销的目的,个人开发时可以使用,团队开发不可以
git拉取远程分支、开发完合并到主分支
https://blog.csdn.net/change_on/article/details/104521751 https://blog.csdn.net/change_on/article/details/104521751
git版本穿梭及查看
git diff +文件名 //查看修改
git log //显示从最近到最远的提交日志,打开无法退出时,输入q即可
git log --pretty=oneline //简易显示从最近到最远的提交日志
git reset //历史版本穿梭
git reset --hard HEAD^ //退回上一个版本
git reset --hard HEAD^^ //退回上两个版本
git reset --hard HEAD~100 //退回上100个版本
git reset --hard +commit id //退回历史版本
git reflog //查看历史命令
git删除,丢弃和恢复修改
git diff HEAD -- readme.txt //查看工作区和版本库里面最新版本的区别(readme.txt是例子)
git checkout --
//丢弃工作区的修改 git reset HEAD
//把暂存区(在版本库.git中)的修改撤销 git rm
//从版本库中删除该文件 通过git rm 删除的文件,找回:
1.git reset HEAD
2.git checkout --
github远程仓库的添加,克隆和删除
git窗口输入:
ssh -keygen -t rsa -C "youremail@example.com"
然后把本机生成的.ssh文件夹下的公钥文件id_rsa.pub复制到github的SSH连接中,这样远程连接就OK了。
本地项目上传github
git remote add origin +github项目链接 //本地项目和远程连接并命名为origin
git push -u origin master //第一次将本地仓库推送到远程仓库
git remote -v //查看远程库信息
git remote rm origin //origin有冲突时,删除origin
远程仓库下载本地
git clone +地址//从服务器端克隆代码
git init//初始化仓库
git remote add origin +地址//给地址起个别名origin
git add .//添加文件到本地仓库
git commit -m ""//提交日志
git push origin master//提交到服务器
git remote rm origin//删除之前origin代表的别名
创建合并分支
git branch //查看分支
git branch
//创建分支 git checkout
或 git switch //切换分支 git checkout -b
或 git switch -c //创建+切换分支 git merge
//合并某分支到当前分支 git merge --no-ff -m ”“ +合并分支 //合并分支,保留分支信息
git branch -d
//删除分支
解决本地分支合并冲突
分支冲突:主分支和次分支都进行了修改并提交到新版本下,如何合并?
git merge
//合并某分支到当前分支下 合并出现问题时,git status 查看合并冲突文件
1.手动解决冲突
2.再次提交git add,git commit
git log --graph --pretty=oneline --abbrev-commit //建议查看合并分支情况
git log --graph //详细查看分支合并情况
分支管理及bug修复策略
master分支:主分支,稳定分支,仅用来发布新版本,平时不能用来干活。
dev分支:干活分支,不稳定,发布版本时,将dev分支合并到master分支。每个人都有自己的干活分支,时不时往dev分支合并就可以了。
bug分支:当前在dev分支正在工作时(未提交),在master分支解决临时bug,需要保护dev分支工作现场,对bug建立新的临时分支来修复,修复后,合并分支,再将bug分支删除,最后回到dev分支,回复之前dev的保护现场。
git stash //存储当前工作现场,等以后恢复现场继续工作
git stash list //查看git stash 存储的修改列表
git stash apply //恢复指定的stash 例:git stash apply stash@{0}
git stash drop //删除指定的stash 例:git stash drop stash@{0}
git stash pop //回复stash内容并删除stash
git cherry--pick
//在master分支上修复的bug,合并到当前dev分支 git branch -D
//丢弃一个没有被合并的分支,强制删除分支
本地与远程交互(多人协作)
git remote -v //查看远程库信息,本地新建的分支如果不推送到远程,随其他人是不可见的
git push origin master //向远程推送主分支
git push origin +branchname //向远程推送次分支
从远程库clone下,默认情况下,只能看到本地master分支
git checkout -b branchname origin/branchname //在本地创建和远程分支对应的分支 如git checkout -b dev origin/dev
推送失败,可能你的小伙伴的最新提交和你试图推送的提交有冲突,解决办法就是先用git pull 把最新的提交从origin/dev抓下来,然后再本地解决,重新提交,再推送。
git pull origin dev//从远程抓取分支
git branch --set-upstream branchname origin/branchname //建立本地分支和远程分支的关联(先建立在关联)
多人协作工作模式:
- 首先可以视图用git push origin branchname 推送自己的修改。
- 推送失败,先用git pull拉下远程分支,试图合并。
- 合并有冲突,解决冲突,本地提交。
- 在使用git push origin branchname.
创建标签
git log --pretty=oneline --abbrev-commit //查看历史提交
git tag
//建立一个标签,默认为HEAD指向版本 git tag
//指定历史提交打标签 git show
//查看标签信息 git tag -a
-m "" //指定标签信息re git tag //查看所有标签
操作标签(远程仓库)
git push origin
//推送本地标签到远程 git push origin --tags //推送本地所有未推送过的标签到服务器
git tag -d
//删除本地标签 git push origin :refs/tags/
//删除远程标签,注意删除前需要先删除本地标签。
特殊文件忽略
忽略某些文件是,需要编写.gitignore。
.gitignore文件本身需要放到版本库里(git add,git commit),并且可以对.gitignore做版本管理
在.gitignore中输入想要忽略的文件夹和文件名字
git别名及比较工具使用
git config --global color.ui true //git关键字高亮
git config --global alias //全局配置别名
git config alias //当前仓库起别名