Git学习笔记
关于maven
Maven是一个共享包软件,通过mvn命令可以建立不同的maven风格的项目,通常idea上面有模板
关于Git
诞生于Linux版本控制
Git是一个分布式版本管理系统,一个项目的每个开发者的电脑上都有个完整的版本库
git开始步骤
-
进入项目文件夹,git init创建空仓库,目录下增加了一个.git文件
-
Git add *(文件名),把文件添加到仓库
-
git commit -m “备注”
git命令
Git status 查看被修改的文件(拿你现在保存的文件或者暂存区中的文件和仓库中的文件对比)
Git diff 查看被修改的具体位置(同上)
Git diff HEAD — 文件名 可以看工作区和版本库里面的最新版本区别
Git log查看提交记录 —petty=oneline有简化版的记录(只显示提交id和提交备注)
git 版本穿梭
Git reset —hard HEAD~1 回退到一个版本前,1表示一个版本前,head表示当前版本
git reset —hard 提交ID ID可以通过shell的输出得到,也可以通过 git reflog 得到
git工作区和暂存区
Git add把文件添加到暂存区,git commit把内容提交到当前分支..git初始化的时候,自动建立了master分支
撤销操作
Git checkout — file 把文件恢复成暂存区或者工作区的内容,优先暂存区
Git reset HEAD file 把文件恢复成工作区的内容,
版本库中删除文件
git rm之后 git commit -m “备注”
远程仓库
本地仓库和远程仓库通过ssh连接.使用ssh加密传输的原因是远程仓库要确认你是你自己.
1,在本地执行ssh-Keygen -t rsa -C “yourEmail” 生成公钥和私钥,都放在用户主目录下的.ssh文件夹中
2,在远程仓库添加你的公钥
最后,git仓库里面所有的信息都能被别人看到并下载,除非交钱.
连接远程仓库并推送
Git remote add origin git@github.com:username/repo.git
Git push -u origin master master是推送本地的master分支,-u是第一次推送,把远程master和本地master关联起来,以后就不用加-u了
git remote rm origin 删除远程库(解除本地和远程的关系)
Git ls-files 列出git仓库中的文件
克隆仓库
git clone git@github.com:username/repo.git
可以通过ssh和http来连接,ssh方便,不用输入密码,且速度更快
版本控制
分支有助于库开发者在不影响使用者的情况下开发库(开发过程中,不完整的库是用不了的,开发完成后一次性推送已完成的库)
创建合并分支
查看分支 git branch
创建分支 git branch name
切换分支 git checkout name 或者 git Switch name
创建并切换分支 git checkout -b name 或者 git switch -c name
合并分支到当前分支 git merge name
删除分支 git branch -d name
以上都是通过fast forward模式合并的
当某个文件不一样的话,会产生合并冲突,这时候要手动解决出现的问题
git log --graph --pretty=oneline --abbrev-commit 可以查看分支合并图
合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并
BUG
修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场;
在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick 命令,把bug提交的修改“复制”到当前分支,避免重复劳动。