Git 常用操作
1. git 将远程分支合并到本地分支
第一种方法
//查看当前远程的版本
$ git remote -v
//获取最新代码到本地临时分支(本地当前分支为[branch],获取的远端的分支为[origin/branch])
$ git fetch origin master:master1 [示例1:在本地建立master1分支,并下载远端的origin/master分支到master1分支中]
$ git fetch origin dev:dev1[示例1:在本地建立dev1分支,并下载远端的origin/dev分支到dev1分支中]
//查看版本差异
$ git diff master1 [示例1:查看本地master1分支与当前分支的版本差异]
$ git diff dev1 [示例2:查看本地dev1分支与当前分支的版本差异]
//合并最新分支到本地分支
$ git merge master1 [示例1:合并本地分支master1到当前分支]
$ git merge dev1 [示例2:合并本地分支dev1到当前分支]
//删除本地临时分支
$ git branch -D master1 [示例1:删除本地分支master1]
$ git branch -D dev1 [示例1:删除本地分支dev1]
第二种方法
//查询当前远程的版本
$ git remote -v
//获取最新代码到本地(本地当前分支为[branch],获取的远端的分支为[origin/branch])
$ git fetch origin master [示例1:获取远端的origin/master分支]
$ git fetch origin dev [示例2:获取远端的origin/dev分支]
//查看版本差异
$ git log -p master..origin/master [示例1:查看本地master与远端origin/master的版本差异]
$ git log -p dev..origin/dev [示例2:查看本地dev与远端origin/dev的版本差异]
//合并最新代码到本地分支
$ git merge origin/master [示例1:合并远端分支origin/master到当前分支]
$ git merge origin/dev [示例2:合并远端分支origin/dev到当前分支]
2.git 拉取远程仓库 fatal: refusing to merge unrelated histories
在命令后面加上--allow-unrelated-histories
git pull patent origin --allow-unrelated-histories
3. git更换远程仓库地址/本地代码推送到新的仓库
第一种方式 修改远程仓库地址
git remote set-url origin 【new_remote_repository_address】
第二种方式
- 从原仓库clone或pull到本地仓库
git clone project_name 【old_remote_repository_address】
- 进入clone下来的本地仓库目录,将远程仓库地址修改为新的远程仓库地址
git remote remove origin
git remote add origin【new_remote_repository_address】
- 将本地仓库文件push到新的远程仓库
git push origin master
4. 取消文件跟踪
- 在项目根目录下面添加
.gitignore
文件
# Eclipse files #
.settings
.classpath
.project
.factorypath
# Idea files #
.idea
*.iml
# Maven files #
target
# jdbc-conf file #
src/main/resources/conf/jdbc-conf.properties
src/main/resources/conf/activemq.properties
# Apple file #
.DS_Store
.tern-project
git rm --cached filename || git rm --cached -r dictoryname
git commit -m "remark"
git push origin master
5. git pull遇到错误:error: Your local changes to the following files would be overwritten by merge:
- 方法1:如果你想保留刚才本地修改的代码,并把git服务器上的代码pull到本地(本地刚才修改的代码将会被暂时封存起来)
git stash
git pull origin master
git stash pop
- 如果你想完全地覆盖本地的代码,只保留服务器端代码,则直接回退到上一个版本,再进行pull:
git reset --hard
git pull origin master
6. Git本地分支与远程分支关联问题
git branch --set-upstream-to=origin/zane zane
origin/zane 为远程分支 zane 为本地分支
git pull 时报错
fatal: refusing to merge unrelated histories
git pull origin master --allow-unrelated-histories
7. 新建分支
git checkout -b zane
新建分支,并转换到该分支
8. 从分支上clone文件
git clone 指定分支
git clone -b dev_jk http://10.1.1.11/service/tmall-service.git
命令中:多了一个 -b dev-jk,这个dev_jk就是分支,http://10.1.1.11/service/tmall-service.git为源码的仓库地址
9. git push错误failed to push some refs to的解决
git pull --rebase origin master
这条指令的意思是把远程库中的更新合并到本地库中,–rebase的作用是取消掉本地库中刚刚的commit,并把他们接到更新后的版本库之中。