git 操作
初次运行Git前的配置
- 用户信息
当安装完Git后应该做的第一件事就是设置你的用户名称与邮件地址。
因为每一个Git的提交都会使用这些信息,并且它会写入到你的每一次提交中
不可更改:
git config --global user.name "xxxxx"
git config --global user.email "xxxxx@xxx.com"
创建版本库
创建一个目录或者在已有目录,进入该目录下(注意目录不要中文)
使用git init
命令把这个目录变成Git可以管理的仓库
这时Git就把仓库创建好了
这时候打开文件管理器的显示隐藏文件,发现仓库(目录)下多了一个.git的目录,这个目录是Git来跟踪管理版本库的
远程仓库
远程仓库就是其他服务器的git仓库如:阿里云git、GitLab、GitHub
由于本地Git仓库和远程仓库之间的传输是通过SSH加密的
所以需要创建SSH Key
ssh-keygen -t rsa -C "xxxxxx@xx.com"
SSH为Secure Shell的缩写,SSH为建立在应用层基础上的安全协议。
ssh-keygen 是基于密钥的安全验证
-t rsa:t是type的缩写,就是指定RSA类型的密钥
-C “邮箱”:C(大写)是comment的缩写,表示要提供一个新注释,用于识别这个密钥,所以""里面不一定非要填邮箱,可以是任何内容,邮箱仅仅是用于识别的key
一路回车,不需要设置密码(idea默认不要密码)
如果结果如上图,则可以在用户主目录下找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件
然后将id_rsa.pub里面的内容加到远程服务中
native不需要密码,built-in需要输入密码
配置多个SSH Key 链接 配置多个SSH Key
- 添加远程仓库
在本地已有仓库中添加远程仓库
git remote add origin 远程仓库地址
结果如上图,则成功连接远程仓库 - 克隆远程仓库
从远程仓库中克隆一个到本地服务器(注意:克隆后的为一个完整的仓库,不需要建一个空目录来当仓库名)
结果如上图,则成功连接远程仓库
git add 操作
将working 添加到index (暂存区)中
git工作区、暂存区、版本库之间的关系
git add -A
提交所有的变化
git add -u
提交被修改和被删除文件,不包括新文件
git add -n
用于测试文件是否存在
git add -v
添加时显示文件信息和状态
git add -p
选择一部分提交
git add -i
进入交互式操作
status
显示当前状态
update
提交更新
revert
将index 重置到 HEAD 版本
patch
选择一部分进行更新
diff
比较index 和 HEAD 的差别
add untracked
添加到index
git commit 操作
将index 提交到 HEAD (版本库) 中
git commit -m "xxxxx"
-m (message)提交信息(必须提交)
git reset 操作
git reset 的作用时修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本
git reset HEAD
回退到上一个版本
git reset --hard 目标版本号
例:
git rm 操作
git rm 文件
删除index(暂存区)上的文件,同时删除working的文件
git rm --cached 文件
删除index(暂存区)上的文件,不删除本地working中的文件,不再被版本控制
git rm -r --cached 文件夹/
git push 操作
将本地版本库的分支推送到远程仓库服务器上的分支
git push <远程主机名> <本地分支名> <远程分支名>
git push origin matser
省略远程分支名,将本地分支推送到 远程分支(同名)上,如果不存在,则会创建远程分支
git push origin
git push
如果当前分支只有一个远程分支,那么主机名都可以省略
git push -u origin master
如果当前分支与多个主机存在追踪关系,则可以使用 -u 参数指定一个默认主机,以后推送,就不需要设置origin master
git pull 操作
从远程获取最新版本并merge到本地
git pull origin master(指定了远程主机 可以只写git pull)
git 分支
创建本地分支
git branch branchname
创建远程分支
git push origin branchname
(branchname不存在 就会创建)
查看本地分支
git branch -v
(git branch
列出分支,-v 显示当前版本)
查看远程分支
git branch -r
查看所有分支(包括远程)
git branch -a
切换分支
git checkout branchname
创建分支并立即切换到该分支下
git checkout -b branchname
根据远程分支 创建本地分支并切换到改分支下
git checkout -b branchname origin/branchname
合并本地分支
git merge branchname
删除本地分支
git branch -d branchname
git branch -D branchname
(当前分支)
删除远程分支
git push origin --delete branchname
git push origin :branchname
推送一个空的分支也会删除远程分支
恢复误删的分支
先git reflog
然后git branch branchname commit_id
git 标签
创建tag
git tag -a tagname -m " xxxx"
切换到标签
git checkout tagname
删除tag
git tag -d tagname
查看tag
git tag
查看tag 详细信息
git show tagname
推送远程标签(和分支类似,删除同理)
git push origin tagname
拉去标签
git pull origin tagname