这个时候,file2.txt就回到了解放前了。用git status查看一下,file2.txt是”change not staged for commit”状态。
通过git clone获取的远端git库,只包含了远端git库的当前工作分支。如果想获取其它分支信息,需要使用”git branch –r” 来查看, 如果需要将远程的其它分支代码也获取过来,可以使用命令” git checkout -b 本地分支名 远程分支名”,其中,远程分支名为git branch –r所列出的分支名, 一般是诸如“origin/分支名”的样子。如果本地分支名已经存在, 则不需要“-b”参数。
分支A_bracn和B_branch,只想将A_branch分支的某个文件f.txt合并到B_branch分支上。
1
2
3
|
git checkout A_branch
git checkout --patch B_branch f.txt
|
第一个命令: 切换到A分支;
第二个命令:合并B分支上f文件到A分支上,将B分支上 f 文件追加补丁到A分支上 f文件。你可以接受或者拒绝补丁内容。
如果只是简单的将A_branch分支的文件f.txt copy到B_branch分支上;
1
2
3
|
git checkout B_branch
cd path /to/f .txt
git checkout A_bracn f.txt
|
撒销一个合并
如果你觉得你合并后的状态是一团乱麻,想把当前的修改都放弃,你可以用下面的命令回到合并之前的状态:
$ git reset --hard HEAD
或者你已经把合并后的代码提交,但还是想把它们撒销:
$ git reset --hard ORIG_HEAD
但是刚才这条命令在某些情况会很危险,如果你把一个已经被另一个分支合并的分支给删了,那么 以后在合并相关的分支时会出错。
重新设置远程仓库的URL
起因: 不小新把记录了公司服务器IP,账号,密码的文件提交到了git
方法:
git reset --hard <commit_id>
git push origin HEAD --force
其他:
根据–soft –mixed –hard,会对working tree和index和HEAD进行重置:
git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容
HEAD 最近一个提交
HEAD^ 上一次
<commit_id> 每次commit的SHA1值. 可以用git log 看到,也可以在页面上commit标签页里找到.
删除远程分支:
推送一个空分支到远程分支,其实就相当于删除远程分支:
gitpushorigin:<branchName>
改变git log 的风格
git config --global
alias
.lg
"log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --"