记录于关于Git学习,进行一些笔记总结。
一、准备工作
需要设置用户名(username)和用户邮箱(useremail),告诉其他小伙伴,是谁上传了这些代码,起一个表明身份的作用。
# 配置用户名
git config --global user.name [XXXXX]
# 配置邮箱
git config --global user.email [XXXXXX]
# 查看设置信息
git config --list
切记!!! 必须按照规范输入命令,不可擅自改变大小写,否则无法实现正常效果。
二、Git相关知识
1、Git 分为 四大部分:
个人区、缓存区、本地仓库、远程仓库
个人无法直接与远程仓库进行对接,极大可能保护了由于个人人原因造成远程仓库的代码出现问题,使用中间库——本地仓库。
个人先将代码上传到缓存区,在由缓存区上传到本地仓库,最好通过本地仓库推送到远程仓库。
当然,不可缺少的还有".gitignore"文件,这是告诉Git 要忽略项目中的哪些文件或文件夹。
想过滤什么都可以告诉该文件,上传Git时会基于该文件进行Git上传代码。
2、分支?
一般情况下,我们都是拉取master后,想要修改功能或者添加功能,都是创建分支,在分支里修改不影响master,如果修改错了代码或者误删之类的,在从master上拉取一份就可以了。
三、标准流程
1、创建Git 仓库
会生成.git 的隐藏文件。(在项目终端窗口中输入!!!)
# 1、初始化仓库,让git接管你的项目
git init
2、补充".gitignore"文件
忽略文件,可自定义书写
这是上传不可缺少的一个文件。可以从其他项目直接复制使用。当然,具体情况具体分析。
3、上传到缓存区
# 3、将当前路径下的所有变更提交到暂存区
git add . //添加当前目录的所有文件到暂存区
git add [dir] //添加指定目录到暂存区,包括子目录
git add [file1] //添加指定文件到暂存区
git add Hello.java //把HelloWorld.java文件添加到暂存区去
4、创建远程仓库
在相关托管平台上进行创建远程仓库,并记录相关HTTPS,
仓库链接为:创建远程仓库链接的HTTPS 或 SSH,二者均可
二者 都是 传输协议
SSH:git@gitee.com:用户名/仓库.git
HTTPS:https://gitee.com/black-sheepmax/lalallalal.git用户名/仓库.githttps://gitee.com/black-sheepmax/lalallalal.git
git remote add origin 仓库链接
// origin 为远程仓库别名 后面http 为远程仓库地址
5、上传本地仓库
git commit -m [message] //提交暂存区到仓库区,message为说明信息
git commit --amend //重新书写上次提交的说明信息
git commit [file1] -m [message] //提交暂存区的指定文件到本地仓库
git commit --amend -m [message] //使用一次新的commit,替代上一次提交
6、上传到远程仓库
-u 是:第一次推送master分支时,加上了-u参数,把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
git push origin master //将本地分支的更新全部推送到远程仓库master分支。
git push -u origin "master"
git push origin -d <branchname> //删除远程branchname分支
git push --tags //推送所有标签
四、其他命令
1、克隆项目:
git clone 远程仓库链接
//仅限HTTPS协议 克隆
//SSH协议需要设置 密钥 和公钥,比较麻烦
2、创建、查看、删除新的分支
git checkout -b dev //创建开发分支dev,并切换到该分支下
git checkout master //切换 master分支
git branch -a //查看全部当前分支(本地+远程)
git branch XXXX //新建一个分支,但是仍停留在原来分支
git branch -D XXX //删除本地branchname分支
git push origin --delete 远程分支名 //删除远程分支名
3、查看提交历史记录
git log //查看提交历史
git reflog //查看当前分支 的 全部操作 任何
git log --oneline //以精简模式显示查看提交历史
4、回滚代码——最重要
--soft 、--mixed、--hard是三个恢复等级。
git reset HEAD --file //回退暂存区里的某个文件,回退到当前版本工作区状态
git reset –-soft //目标版本号 可以把版本库上的提交回退到暂存区,修改记录保留
git reset –-mixed //目标版本号 可以把版本库上的提交回退到工作区,修改记录保留
git reset –-hard //可以把版本库上的提交彻底回退,修改的记录全部revert。
使用--soft就仅仅将头指针恢复,已经add的暂存区以及工作空间的所有东西都不变。
如果使用--mixed,就将头恢复掉,已经add的暂存区也会丢失掉,工作空间的代码什么的是不变的。
如果使用--hard,那么一切就全都恢复了,头变,aad的暂存区消失,代码什么的也恢复到以前状态。
git reset的作用是修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本
Git的所有提交,会连成一条时间轴线,这就是分支。如果当前分支是master,HEAD指针一般指向当前分支,如下:
5、合并分支
发版需要把代码合到主干master分支 需要:
//切换到 当前master分支上
git checkout master
//在当前分支上合并master分支过来
git merge dev
6、合并后的冲突
-
查看冲突文件内容
git merge master
-
确定冲突内容保留哪些部分,修改文件
-
重新提交,done
7、查看文件状态
忘记是否把代码文件添加到暂存区或者是否提交到本地仓库,都可以用git status看看哦~
git status 查看当前工作区暂存区变动
git status --show-stash 查询工作区中是否有stash(暂存的文件)
8、看指定文件的更改历史和更改人
git blame 指定文件带后缀