- git pull 强制更新,覆盖本地代码
法一:
$ git fetch --all
$ git reset --hard origin/master
$ git pull
法二:
$ git pull --force
- git 复制已有分支到新分支
$ git checkout -b old-branch origin/old-branch
$ git checkout -b new-branch
$ git push origin new-branch:new-branch
$ git pull
$ git branch --set-upstream-to=origin/new-branch new-branch
$ git pull
- git将一个分支上的修改转移到另一个分支上
$ git stash //把暂存区内的修改存储起来
$ git checkout dev //切换到正确的分支
$ git stash pop //将存储的修改取出来
- git pull解决冲突
$ git stash //把暂存区内的修改存储起来
$ git pull //切换到正确的分支
$ git stash pop stash@{0} //将存储的修改取出来解决冲突
- git 合并多次提交
$ git rebase -i xxxx 或 git rebase -i HEAD~3 //处理xxxx提交记录之后的历史提交 或 当前提交的前3次提交
$ pick, squash, edit... //编辑合并规则, 可修改提交注释
$ git push origin -f //有冲突解决冲突,没有冲突编辑提交信息,强制推送
$ git rebase --abort //丢弃当前的合并
- git 修改历史注释
###### commit一次,同时已经push,需要增加一次commit到上一次commit
$ git commit --amend -m "注释" //提交需要增加的commit记录,追加至上一次
$ git push origin develop --force //强制覆盖推送到远程分支
###### commit一次,但是未推到远程分支,需要增加一次commit到上一次commit
$ git commit --amend -m "注释" //提交需要增加的commit记录,追加至上一次
$ git push origin develop --force //推送到远程分支
##### git修改历史提交
git rebase -i HEAD~3 //如上git rebase修改历史提交 edit
git 合并master分支代码到自己分支的两种方法
####### 1. 使用git merge方法合并master分支代码到自己分支
$ git checkout master # 切换本地分支为master
$ git pull # 更新本地分支master代码为远程最新代码
$ git checkout [自己的分支名] # 切换到自己的分支
$ git merge master # 合并master到自己的分支
$ git push # 提送自己本地分支到自己的远程分支
###### 2. 使用git rebase合并master分支代码到自己的分支
# rebase local master
$ git checkout master
$ git pull origin master
$ git checkout [自己的分支名] # 切换到自己的分支
$ git rebase master 变基, 合并后自己的分支为最新的代码
$ git push # 提送自己本地分支到自己的远程分支
# rebase remotemaster
$ git fetch # download objects and refs from another repository
$ git rebase origin/master #将远端master最新的代码合进本地的branchA分支。
git 取消跟踪后删除远程分支文件
$ git ls-files
# 有的时间想要查看一下git跟踪了哪些文件,此命令就可以列出所有git正在跟踪的文件
$ git rm --cached FileName
# git不再跟踪名为FileName的文件,但是文件保留在工作区中,也就是你的目录中
$ git rm FileName
# 删除名为FileName的文件,同时git不再跟踪它
$ git rm -r --cached --ignore-unmatch folder_name
拉取所有远程分支的代码到本地,但是它们不会自动检出到本地分支。如果您想要在本地创建分支来跟踪每个远程分支,可以使用以下命令
git fetch --all
git branch -a | grep remotes/origin | grep -v HEAD | xargs -L1 git checkout -t