一、Tortoise 图像化操作:
1.克隆项目(即从github仓库拉取项目文件):
2.暂存区:
添加到暂存区:
(1)新建一个文件 (2)右键选择子选项 ->【添加】(3)勾选为被控制文件 即,新加进入的文件
3.从暂存区还原:鼠标右键子菜单【还原】
4.提交(提交代码):
(1)右键选择=>Git提交"master"
(2)输入提交信息(版本修改提示信息),点击提交
5.提交回退(在上传项目错误后,可以重新回退覆盖,注意:不能单纯回退,需要重新提交更新文件,相当于覆盖功能,同时提交次数不改变)
时光倒回(回到上一个版本)进行提交
(1)右键=>查看【日志】
(2)找到上一个版本
(3)点击右键 -> 【重置"master"到这个版本】
(4)选择重置类型【Hard重置工作区和索引】
1.版本信息和代码都能退回
6.推送
推送到远程服务器:
(1).右键 => 子菜单 中的推送
(2).保证其他URL有地址,该地址和推/克隆的地址一样
(3).点击推送,输入用户名和密码
7.覆盖远程提交(针对第5点提交回退)
(1)右键 -> 查看【日志】
(2)找到上一个版本
(3)点击右键 -> 【重置"master"到这个版本】
(4)选择重置类型【Hard重置工作区和索引】(前四部同上)
(5)新编写代码并添加-提交-推送 【选择强制】推送,如图:
------------------------------------------------------
二、git命令行:
1.拉取代码(克隆)
git clone “项目网址” 项目文件夹名称
2.拉取代码:
1.创建空版本库 git init (项目文件夹下生成.git文件夹)
2.拉取代码:git pull 地址 分支名(mastetr)
3.添加到暂存区:
1.新建一个文件(touch、mkdir)
2.打开Git bash
3.输入git add .
4.查看状态 git status
4.从暂存区还原(相对于上一步)
git reset HEAD
5. 提交
1.输入命令 git commit -m "提交信息"
2.查看提交日志git log
6.提交回退:
1.查看提交日志,找到上一个版本的id :(git log)
2. Git reset --hard 【id】
7.推送(推送到远程服务器):
使用命令:git push 地址 分支
注意:此时可能需要输入密码用户名(gitee、github)可以不用每次设置用户名密码(两种方法)
方法一:适用于每一个项目文件夹下(即更改项目文件夹,需要重新设置):
命令行输入:git config --global credential.helper store
方法二:直接设置本地凭据即可(前提要先命令行输入上一方法的命令
):
(1)找到【凭据管理器】:
(2)找到【windows 凭据】:
点击【添加普通凭据】(gitee,github网址如下)
(3)输入gitee、github账号密码即可;
(4)下一次拉取或者更新github项目则不需要密码
8. 覆盖远程提交
(1)查看之前版本id git log
(2)回到之前版本 git reset --hard id
(3)添加新文件(touch、mkdir)
(4)执行正常添加-提交-推送:【强制推送】 git push 地址 分支 --force
9.分支的概念和HEAD(当前指针)
10. 分支操作:
参考链接:https://www.jianshu.com/p/4c1d3b741b19
背景: 在多人协同开发中,我们经常会遇到这样的问题:A在本地开发完成后,将代码推送到远程,这时候B的本地代码的版本就低于远程代码的版本,这时候B该如何从远程拉取最新的代码,并与自己的本地代码合并呢?
(1)查看远程仓库:
git remote -v
(2)比如 在步骤一中,我们查看到远程有一个叫origin的仓库,我们可以使用如下命令从origin远程仓库获取最新版本的代码
git fetch origin master:temp
上面代码的意思是:从远程的origin仓库的master分支下载到本地master并新建一个temp分支
注意:不建议使用pull拉取最新代码,因为pull拉取下来后会自动和本地分支合并
获取最新版本 有两种 拉取 和 获取 pull 和 fetch
git pull 从远程拉取最新版本 到本地 自动合并 merge git pull origin master
git fetch 从远程获取最新版本 到本地 不会自动合并 merge git fetch origin master git log -p master …/origin/master git merge orgin/master
实际使用中 使用git fetch 更安全 在merge之前可以看清楚 更新情况 再决定是否合并
(3)查看temp分支与本地原有分支的不同
git diff temp
(4)将temp分支和本地的master分支合并
git merge temp
现在,B的本地代码已经和远程仓库处于同一个版本了,于是B可以开心coding了。
(5)切换回master主分支,再提交到远端即可:
最后再提一下,上面的步骤中我们创建了temp分支,如果想要删除temp分支,也是可以的,命令如下:
git branch -d temp
(6)创建远程新分支,并将本地分支推送到远程:
git push origin 远程分知名:本地分支名
(7)删除远程分支:
将上一步远程分知名置空即可
git push origin :本地分知名
(8)查看远程和本地所有分支:
git branch -a (clone下来的文件夹gitbash才能看见远程分支)
11. 添加新的远程遥控器(origin)
git remote add origin https://…
更改现有远程存储库URL:git remote set-url origin git@github.com:User/UserRepo.git
查看现有遥控器:git remote -v