Git基本工作流程:工作目录(代码存放位置)→暂存区(代码提交到仓库前的临时存储空间)→本地历史仓库(存放不同版本的代码)
Git常用命令
- git init:初始化,创建git仓库
- git status:查看git状态(文件是否添加、提交)
- git add 文件名:添加,将指定文件添加到暂存区
- git commit -m ‘commit first test.txt file’:提交,将暂存区所有的文件提交到历史仓库,-m ‘一些提交信息’
- git log:查看日志
- git reflog:可以查看所有分支的所有操作记录(包括已删除的commit记录的操作)
- git reset --hard 唯一标识(黄色,用上一命令查看):切换版本
步骤:
创建工作目录,初始化本地git仓库
创建一个文件夹,git init
新建一个test.txt文件(暂不执行添加操作)
使用status命令查看状态
git status 红色
使用add命令添加,查看状态
git add test.txt 绿色
使用commit命令,提交到本地历史仓库
git commit -m ‘commit first test.txt file’
使用log命令查看日志(commit ********** 唯一标识,用于版本切换)
修改test.txt文件
添加并提交,查看日志
TortoiseGit操作:
- 创建工作目录,右击:git在这里创建版本库,直接确定
- 新建一个test.txt文件
- 右击:TortoiseGit 添加
- 右击:git提交,信息
分支:由每次提交的代码,串成的一条时间线。使用分支意味着可以把工作从开发主线分离开来,以免影响主线开发,开启新的分支,然后合并
分支命令:
- git branch 分支名:创建分支
- git branch 查看当前所在分支
- git branch -a 查看所有分支
- git branch -d 分支名:删除分支
- git merge 分支名:合并分支
- git checkout 分支名:切换分支
远程仓库:代码托管平台(部署在公网的一个网站),平台:GitHub:https://github.com;码云:https://gitee.com
推送push:本地仓库→远程仓库
克隆clone:远程仓库→本地仓库(复制)
拉取pull:远程仓库→本地仓库(更新)
创建远程仓库
生成SSH公钥:
设置Git账户
- git config user.name:查看git账户
- git config user.email:查看git邮箱
- git config --global user.name “全局账户名”:设置全局账户名
- git config --global user.email "邮箱"设置全局邮箱
- cd ~/.ssh:查看是否生成过SSH 公钥
生成SSH 公钥
生成命令: ssh-keygen -t rsa -C “邮箱”
回车三次
设置公钥
复制公钥,到我的设置里粘贴
公钥测试
命令:ssh -T git@gitee.com,后面yes
先有本地仓库,远程仓库为空:推送到远程仓库
步骤:
- 为远程仓库的URL(网址),自定义仓库名称
- git remote add 远程仓库名称 远程仓库URL
- 推送
- git push -u 远程仓库名称 分支名
现有远程仓库,本地仓库为空:
步骤:
- 将远程仓库的代码克隆到本地:git clone 仓库地址
- 创建新文件,添加并提交到本地仓库
- 推送至远程仓库
- 项目拉取更新:git pull 远程仓库名称 分支名
代码冲突
<<<<<<和>>>>>>中间的内容就是冲突部分
- 修改冲突,保存
- 重新add,commit到本地仓库,重新push到远程仓库
使用idea提交
VCS→import intoversion control→create git repository
选择模块上一级目录
右上角:绿色√:commit 蓝色箭头:pull 绿色箭头:push
使用idea版本切换
会抛弃原来的提交记录:reset current branch to here→hard选项,reset
不会抛弃原来的提交记录:revery commit→merge。revert操作会当作一个新的提交记录,可以回退到没有回退的版本,还保留提交记录
使用idea管理分支
创建并切换分支:Git→branch→create branch(切换一样的操作或者右下角,删除是再次基础上选择delete)
合并分支:Git→merge changes→merge
使用idea:本地推送远程
Git→push
使用idea:克隆到本地
创建项目那个界面(最开始):check out from version control