工作区----(git add)---->暂存区----(git commit)---->本地库--------->远程库
代码托管中心:
局域网:GitLab,可以自己搭建
外网:GitHub或者Gitee,不需要自己搭建
初始化本地仓库
【1】创建一个文件夹
【2】打开Git终端
查看Git版本:git --version
设置用户名:git config --global user.name “xxx”
设置邮箱:git config --global user.email “xxx”
本地仓库的初始化:进入【1】创建的文件夹下 执行git init
注意事项:.git目录下的相关子目录和子文件不要删除,不要胡乱修改
Git的常用命令
git add 文件名:提交到暂存区
git commit -m “comment” 文件名:带注释提交到本地库
git status:查看未add和未commit文件状态
git log:查看提交的由近到远的日志,当日志记录过多时,会有分页的效果
下一页:空格
上一页:b
到尾页:显示END
退出:q
git log --pretty=oneline:简化版
git log --oneline:超简化版
git reflog:比上个命令多个HEAD@{数字},数字代表指针回到当前这个版本需要回退多少步
git reset --hard 版本索引号:前进或者后退历史版本,本地库移动的同时,暂存区和工作区都移动
git reset --mixed 版本索引号:前进或后退版本,本地库移动的同时,暂存区移动,工作区不动,不常用
git reset --soft 版本索引号:前进或后退版本,本地库移动的同时,暂存区和工作区都不动,不常用
rm 文件名:删除工作区中的文件
将删除操作同步到暂存区 git add 文件名
将删除操作同步到本地库 git commit -m "comment" 文件名
如果想找回本地库中删除的文件
先查看日志 看到有删除文件的那个版本的索引 git reflog
再执行git reset --hard 索引号
git reset --hard HEAD
git diff:工作区与暂存区所有不一致文件对比
git diff 文件名:工作区与暂存区单独文件对比
git是以行为单位管理数据,所以删除一行,添加一行
git diff [历史版本] [文件名]:暂存区与本地库不一致文件对比
git branch -v:查看分支
git branch 分支名:创建分支
git checkout 分支名:切换到分支
git checkout 远程库别名/分支名:切换到分支
git merge 分支名:将分支中的内容和主分支合并
git merge 远程库别名/分支名:将远程库内容和本地库合并
合并完后状态仍是合并状态,需要执行git commit -m ”comment” 操作,不能带文件名
cat 文件名:查看文件内容
git remote -v:查看远程库地址别名
git remote add 别名 远程库URL:给远程库地址起别名
git push 远程库别名 分支名:本地库向远程库推送
git clone 远程库URL:克隆远程库,非创建者使用时需先克隆
非创建者团队修改内容需先接收邀请
邀请团队加入:GitHub远程库目录---->Settings---->Manage access----->Invite a collaborator---->Add XXX---->复制邀请链接----->登录被邀请者账户接受邀请(地址栏输入邀请链接)
git fetch 远程库别名 远程库分支:抓取操作,只是将远程库内容下载到本地库,但是工作区还没有
git pull 远程库别名 远程库分支:远程库的拉取,pull操作即fetch+merge,所以也可以如下操作
git fetch 远程库别名 远程库分支
git merge 远程库别名/分支名
SSH免密操作
进入用户的主目录中
cd ~
执行命令,生成.ssh目录(C大写,三次回车确认默认值)
ssh-keygen -t rsa -C github邮箱
复制.ssh目录下id_rsa.pub文件中内容
打开GitHub—>settings—>SSH and GPG keys—>输入title(任意),输入key(id_rsa.pub中的内容)—>Add SSH key
IDEA集成git
- File—>Settings—>version control—>git—>git安装目录\bin\git.exe
- VCS–>Import Into Version Control—>Create Git Repository项目路径
- 文件右键—>git—>add
- 文件右键—>git—>commit directory/commit file
- 远程库提交 因为是两个不同项目合并,git pull 远程库别名 远程库分支 --allow-unrelated-histories,这个方法只为了解决两个仓库有不同的开始点,也就是两个仓库没有共同的commit出现的无法提交
- git push -u 远程库别名 远程库分支 -f
- 文件右键—>git—>Respository---->pull(可选)
- 文件右键—>git—>Respository---->push
IDEA从远程库拉取项目到本地
- File—>new—>Project from Version Control—>Git