git日常操作指令
git仓库初始化
1.下载git客户端
windows: https://gitforwindows.org/
2.创建ssh key
ssh-keygen -t rsa -C “your_email@youremail.com”
3.将生成的id_rsa.pub的key拷贝到github的ssh keys中
4.初始化本地仓库
# 本地仓库初始化
git init
# git checkout master
git remote add origin git@github.com:zzfengxia/spring-demo.git
- 5.上传本地项目
# 添加到版本控制(. 表示添加所有文件)
git add file
git commit -m "comment"
# -u指定默认主机(首次push需要)
git push -u origin master
git相关指令
克隆远程仓库
git clone <远程仓库地址> <本地目录名>
查看远程仓库信息
git remote -v
修改远程仓库地址
git remote set-url origin <地址>
查看当前分支
git branch
查看远程分支
git branch -r (-a 所有分支, -vv可以查看分支追踪情况)
设置追踪
git branch –set-upstream-to=origin/master master
指定master分支追踪origin/master远程分支。切换分支
git checkout dev
创建分支
git branch dev
创建并切换分支
git checkout -b dev
将远程分支拉取到本地并创建新分支
git checkout origin/remoteName -b localName
合并分支到当前分支
git merge dev
更新代码
git pull
git pull origin next:master (拉取远程origin主机的next分支,与本地master分支合并; 后面的:master省略表示与当前分支合并) 等同于 git fetch origin,git merge origin/next删除远程分支已经删除的本地分支
git pull -p
等于 git fetch –prune origin ,git fetch -p提交代码
git commit -m "comment"
# 添加并提交
git commit -am "comment"
- 推送本地代码到远程仓库
git push
# 来源地:目的地
git push <远程主机名> <本地分支名>:<远程分支名>
# 本地的master 到远程的master,不存在则新建
git push origin master:master
# -u指定默认主机
git push -u origin master
# 将当前分支推送到origin主机的对应分支(存在追踪关系)
* git push origin
删除远程仓库文件
git rm -r –cache [文件]
git commit -m “comment”
git pushgitignore不生效解决
git rm -r –cached .
git add .
git commit -m ‘update .gitignore’删除远程分支(注意origin后的空格)
git branch -r -d origin/branch-name
git push origin :branch-namegit fetch <远程主机名> <分支名>
删除远程分支
git push origin :master
等同于
git push origin –delete master修改默认推送方式
git config –global push.default matching
simple 推送当前分支,matching推送所有有对应远程分支的本地分支撤销提交
git revert 是生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留
git reset 是回到某次提交,提交及之前的commit都会被保留,但是此次之后的修改都会被退回到暂存区
git参数设置
查看本地仓库设置所有属性
git config –local –list
查看git客户端全局属性
git config –global –list
设置本地仓库属性
git config user.name/email [username/email]
设置全局属性
git config –global user.name/email [username/email]
git异常整理
- 两个不同源的项目合并时报错 fatal: refusing to merge unrelated histories
解决:添加–allow-unrelated-histories参数即可。如 git merge dev –allow-unrelated-histories