关联远程分支
git branch –set-upstream master origin/master origin: 远程库
原因是之前有添加远程repo
我们来查看一下
git branch -av
注:红色的字体表示远程的repo
删除远程repo (使用命令或者修改配置文件)
1.使用命令
git remote rm origin
2.修改.git/config配置文件
注:去掉对应的远程repo
什么现在再来看一下分支结构
git branch -av
注:远程repo已经被删除
现在我们再来添加远程repo
git remote add origin url
注:url 表示具体的地址
git reset [–soft][–mixed][–hard]
git reset --soft HEAD^^ or HEAD~~
回退2个版本,将这次提交之后的所有变更都移动到暂存区
git reset --mixed HEAD^^ or HEAD~~
回退2个版本,且会重置暂存区,即这次提交之后的所有变更都移动到未暂存阶段
–mixed 默认的参数
git reset --hard HEAD^^ or HEAD~~
回退2个版本,会重置暂存区,并且会将工作区代码也回退到这个版本
创建远程分支
git push origin dev:dev
origin:远程仓库 本地分支:远程分支
本地分支关联远程分支
git branch --set-upstream debug origin/debug
git rebase (解决冲突)
git add .
git rebase –continue
删除远程分支
删除前
git push origin --delete test
or
git push origin :test //推一个空分支 相当于删除
注: 删除origin远程主机的 test分支
最后看结果
[git]
git add <file> 文件添加到暂存区
git checkout -- file 可以丢弃工作区的修改
git reset HEAD file 把暂存区的修改回退到工作区(HEAD,表示最新的版本)
git remote add origin git@server-name:path/repo-name.git 关联一个远程库
git branch <name> 创建分支
git checkout <name> 切换分支
git fetch <branch name> 下载数据
git rebase <branch name> 打补丁的方式合并分支
git merge [--no-commit] [--squash] <branch name> 合并分支(--no-commit:无需自动生成和记录提交; --squash:将所有更改都作用到当前分支)
git branch -D <branch name> 强行删除分支
**git checkout -b test
git push origin test 这样远程仓库中也就创建了一个test分支
git push –set-upstream origin test 关联远程test分支**
git push origin <branch name> 推送分支
git diff (没有暂存)查看从上次提交之前你做了什么
git diff <id> "master~2" 查看特定版本与倒数第二个变更
git diff --cached(或--staged) 暂存起来的文件和上次提交时的快照之间的差异
git log 查看提交历史
git log --pretty --author=<name> 查看指定作者的提交记录
git log --pretty <file> 查看指定文件的提交记录
git reflog 查看你每一次命令(回退版本)
git reset --hard <commit_id> 回退版本
--soft 修改的信息还在暂存区
--mixed(默认) 修改的信息在工作区
git revert <id> 撤销到这个id
git commit --amend 修改提交的信息
ignored 对git来说不存在)
git cherry-pick <commit id> 把另一个本地分支的commit修改作用到当前分支
--abort 终止将提交到该分支
--continue 继续将提交放到该分支, 可能存在冲突
git clean -fd 强制清除未跟踪文件
|当前分支还没有完成,需要先去修复bug|
git stash 可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash pop 恢复的同时把stash内容也删了
git stash apply stash@{0} 恢复指定的stash,但是恢复后,stash内容并不删除,
你需要用git stash drop来删除
|创建标签|
git tag <name> 用于新建一个标签,默认为HEAD,也可以指定一个commit id
git tag -a <tagname> -m "blablabla..." 可以指定标签信息
git tag 可以查看所有标签
git push origin <tagname> 可以推送一个本地标签
git push origin --tags 可以推送全部未推送过的本地标签
git tag -d <tagname> 可以删除一个本地标签
git push origin :refs/tags/<tagname> 可以删除一个远程标签
|case|
1.合并本地的2个仓库,大致思路是伪造远程的repo1仓库为repo2的一个分支,然后合并进来;
若是文件有冲突、或要建立子目录,建议在repo1中先解决,再进行如上操作。
2.当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
4.已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,
不过前提是没有推送到远程库。