git命令行窗口常用命令
配置用户名和邮箱
git config --list 查看配置信息
git config --global user.name="hello" 设置用户名
git config --global user.email=“XXXX@qq.com” 设置邮箱
git init 初始化git项目(生成 .git目录实际一个隐藏文件夹)
git clone 克隆地址 克隆远程仓库
克隆的库为私有的库时则需要输入账户名和密码
也可以事先再控制面板–>用户账户–>管理windows凭据–>添加普通凭据–>配置 git:https://gitee.com 账户和密码
版本库.git 存储了很多配置信息和文件版本信息
暂存区:在版本库中的index文件中
工作区–git add–> 暂存区–git commit–> 版本库
git目录下文件的状态
untracked 未跟踪状态
tracked 已跟踪状态
unmodified 未修改
modified 已修改
staged 已暂存
本地仓库操作
git status 查看文件状态
git status -s 简洁的显示文件状态
git add 文件名 把文件加入暂存区(文件由红色变成绿色)
git reset HEAD 文件名 变成未暂存状态
git commit -m "提交操作的说明" (修改完的文件都要先加入占存区才可以进行提交)
git commit 没有-m 时会打开一个编辑文件在文件中输入提交说明就行
git rm 文件名 “删除文件”(rm 操作直接把操作存入暂存区了,接下来直接提交操作就行)
直接手动删除则需要再 git add 文件名 然后提交
设置git忽略列表
通过git命令窗口 创建一个.gitignore文件 指定忽略的文件和文件夹
输入 *.class 表示不对class结尾的文件进行管理
!aa.class 表示排除aa.class
git log 查看操作记录
远程仓库信息
git remote 命令表示判断是否跟远程仓库建立连接 结果为origin就是远程仓库的名字
git remote -v 详细显示连接的远程仓库的信息
git remote show origin 查看远程仓库的具体信息
添加远程仓库
git remote add <shortname> <url> 添加远程仓库同时指定一个简短的仓库名
(远程仓库不一定需要和本地仓库一致但是建议保存一致)
可以添加多个远程仓库
克隆远程仓库
git clone 仓库地址 是把仓库所有信息都克隆下来
移除远程仓库
git remote rm 远程仓库名 (把关联关系移除)
从远程仓库抓取最新版本到本地仓库不会自动合并数据
git fetch 获取远程仓库最新版本不会合并文件
1 gite init 初始化一个本地仓库
2 git remote add origin/master 添加一个远程仓库
3 gite fetch origin master 获取远程仓库信息单本地仓库但是不会合并到工作区
· 4 gite merge origin/master 合并到工作区,这个时候工作区就有远程仓库的信息了
git pull 获取远程仓库最新版本自动合并文件
1 gite init 初始化一个本地仓库
2 git remote add origin/master 添加一个远程仓库
3 gite pull origin master 获取远程仓库信息单本地仓库但是不会合并到工作区
·
gite pull origin master --allow-unrelated-histories
如果本地本来就有文件 又关联远程时要拉取数据那么就需要在pull 后面加上 --allow-unrelated-histories
录取后会默认打开一个日志文件让你输入操作信息,直接wq保存关闭就行了
git push origin master 把本地的master分支推送到远程仓库
git commit -a -m “注释内容” 把修改的信息添加到暂存区并提交到本地仓库
git分支
master为主分支 git init默认创建了master分支
分支分为本地分支和远程分支
git branch 查看本地分支
git branch -r 查看远程分支
git branch -a 查看所有分支
创建分支
git branch b1 创建本地分支命名为b1
切换分支
git checkout b1 切换到b1分支
推送分支到远程仓库
git push origin b1 推送b1分支到远程仓库
合并分支
切换到master分支下执行 git merge b1 这样把b1合并到master分支下
两个分支修改同一个文件的同一行代码,然后合并时会出现冲突。合并后命令行后面的分支名会都一个merging单词,
并且结果提示我们需要解决这个冲突解决的方式就是打开文件删除冲突的标识然后提交就行了
删除本地分支
git branch -d 分支名 (删除分支时不能切换到该分支下操作)
如果该分支有开发内容并且未提交到远程仓库此时就不会允许删除
使用 git branch -D 分支名 就可以进行强制删除
删除远程分支
git push origin -d b2
git的标签
列出已有的标签
git tag
创建标签
git tag 标签名
查看标签信息
git show tag
推送标签到远程仓库
git push origin 标签名
检出标签
git checkout -b [branch] [tag] 创建一个分支指向标签的状态
删除标签
git tag -d [tagName]
删除远程标签
git push origin:refs/tags/[tagName]
ssh 协议
码云支持两种协议 一个是http 一个是ssh
在C:\Users\Administrator.ssh 目录下开启git命令窗口执行 ssh-keygen -t rsa 生成公钥和私钥
然后把公钥放到码云中的公钥设置即可
git中的撤销方法
git reset maset^ 回头前一次提交
git reset master~3 回头到前三次提交
git reset <commitId> 回退到指定的的提交位置
git reset --hard maset^ 回退并且把工作区和暂存区的文件都丢掉
git reset --soft maset^ 回退并且工作区和暂存区的文件都不会丢掉
git reset --mixed maset^ 回退并且工作区不丢失和暂存区的文件丢掉
git reset–hard HEAD^ 表示退回上一次提交 head表示当前 ^表示上一次
git reflog 查看回退的日志版本信息
git reset --hard 返回到哪个回退版本之前
reset会不保留撤退后的commit记录 revert会保留commit记录
git revert 使用方式和reset都差不多
git revert更像一次新commit(团队开发更推荐)
git reset更像直接移动指针
git log --oneline 查看记录并且以一行的形式显示
git revert --quit 退出撤销模式