1. git 撤销某次commit
git reset --mixed这样文件退出暂存区,但是修改保留
2. 撤销所有的已经add的文件:
git reset HEAD .
如果是撤销某个文件或文件夹:
git reset HEAD -filename
3.【和远程库相关】
git init --将当前目录初始化成本地git仓库
git clone git@github.com:cxwuAmber/gitskills.git --克隆仓库到本地
git remote add origin git@github.com:cxwuAmber/myrepository.git --和远程库关联本地仓库
git push -u origin master --向远程仓库推送本地库的内容(首次推送)
git push origin master --后续更新时不需要加-u参数(把本地master
分支的最新修改推送至GitHub)
git push --set-upstream origin 分支名 --推送本地分支到远程仓库
git checkout -b 本地分支名 origin/远程分支名 --checkout本地没有的分支并创建本地分支
4.【开发过程常用操作】
git diff +文件名 --查看当前文件做了哪些修改
git status --查看当前的git状态
git log –查看提交的历史记录
git add + 文件名 --将文件修改添加到暂存区
git commit --将暂存区add的文件提交的分支(git commit -m + "备注")
git pull --将远程库代码merge到本地
5.【git 分支相关操作】
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name> --no-ff 参数是禁用Fast Forward方式进行合并
删除分支:git branch -d <name>
查看分支合并图:git log --graph
6.【修改.gitignore文件】
修改gitignore文件之后,在项目根目录下执行删除缓存命令之后才会生效
git rm -r --cached . --删除本地缓存
git add .
之后可以执行git commit 等操作
7.【git查看远程仓库信息】
git remote show origin
8.【git设置远程仓库的地址】
git remote set-url origin ssh://git@git.sankuai.com/sec/src.git
9.【本地代码库回滚】:
git reset --hard commit-id :回滚到commit-id,讲commit-id之后提交的commit都去除
git reset --hard HEAD~3:将最近3次的提交回滚
10.【远程代码库回滚】:
这个是重点要说的内容,过程比本地回滚要复杂
应用场景:自动部署系统发布后发现问题,需要回滚到某一个commit,再重新发布
原理:先将本地分支退回到某个commit,删除远程分支,再重新push本地分支
操作步骤:
1、git checkout the_branch
2、git pull
3、git branch the_branch_backup //备份一下这个分支当前的情况
4、git reset --hard the_commit_id //把the_branch本地回滚到the_commit_id
5、git push origin :the_branch //删除远程 the_branch
6、git push origin the_branch //用回滚后的本地分支重新建立远程分支
7、git push origin :the_branch_backup //如果前面都成功了,删除这个备份分支
11、远程仓库回滚到某个commit
git reset --hard commit_id
git push -f