删除远程分支上的某个patch
git reset commitId (注:不要带–hard)到上个版本
git stash 暂存修改
git push --force 其实只有这个就够了,会把本地修改强制同步到远程,危险性在于会删除远程对应commit上面的修改 - 强制push,远程的最新的一次commit被删除
git stash pop 释放暂存的修改,开始修改代码
git add . -> git commit -m "massage" -> git push
一、
git clone只能clone远程库的master分支,无法clone所有分支,解决办法如下:
1. 找一个干净目录,假设是git_work
2. cd git_work
3. git clone http://myrepo.xxx.com/project/.git ,这样在git_work目录下得到一个project子目录
4. cd project
5. git branch -a,列出所有分支名称如下:
remotes/origin/dev
remotes/origin/release
6. git checkout -b dev origin/dev,作用是checkout远程的dev分支,在本地起名为dev分支,并切换到本地的dev分支
7. git checkout -b release origin/release,作用参见上一步解释
8. git checkout dev,切换回dev分支,并开始开发。
二、
1、将分支代码feature-v3同步到master上
git checkout feature-v3
git add .
git commit -m "..."
git checkout master
git merge feature-v3
// 处理冲突 git add & git commit
git push
2、将master代码同步到feature-v3上
git checkout master
git pull
git checkout feature-v3
git merge master
// 处理冲突 git add & git commit
git push
3、注意点:
本地merge完了之后一定要push**对应的分支**,否则远程仓库并未同步!
若暂时没有被CR,那么远程仍是未同步的,当未同步时再同步其他的分支时,会有些diff的,因为就相当于未push成功嘛~
最后,再重复下,一定要push对应的分支!
三、
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
git merge --no-ff -m "merged bug fix 101" issue-101
分支合并的时候加上--no-ff -m "xx" 参数可以在合并之后又记录可查询。
删除分支:git branch -d <name>
如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。
用git log --graph命令可以看到分支合并图。
恢复git rm 的文件:
1、查看删除的文件 git status
2、把文件从缓存区恢复到工作区 git reset HEAD test.txt
3、丢弃工作区的修改 git checkout -- test.txt
工作目录删除文件之后只需执行第三步恢复即可
git reflog查看操作log
git reset --hard commit_id 版本回退
当前工作现场“储藏”起来(在当前需要保存的分支进行操作) git stash
查看当前保存的操作 git stash list
恢复方式是用git stash pop,恢复的同时把stash内容也删了
本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支,使用git push origin dev,如果推送失败,先用git pull抓取远程的新提交;
在本地创建和远程分支对应的分支,使用git checkout -b dev origin/dev,本地和远程分支的名称最好一致;
如果git push origin dev的时候报错旧的需要进行关联操作
建立本地分支和远程分支的关联,使用git branch --set-upstream dev origin/dev
从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
命令git tag -a <tagname> -m "blablabla..."可以指定标签信息
查看提交的结构图 git log --graph --pretty=oneline --abbrev-commit
查看远程库信息 git remote -v
查看远程分支 git branch -r
查看本地分支 git branch
删除本地分支 git branch -d dev
删除远程分支 git push origin :dev
查看标签 git tag
删除标签 git tag -d v0.1
查看某个标签的详情 git show tag_name
推送一个本地标签 git push origin <tagname>
推送全部未推送过的本地标签 git push origin --tags
删除一个远程标签 git push origin :refs/tags/<tagname>
问题:
1、git分支操作切换主分支之后,再切换回来文件会改变?
2、git吧一些不想上传到远程服务器的文件放到了本地仓库,文件内容需要保存,如何撤销本地的commit的操作。(思路:)