git 命令行
1.cd 至目录
2.git init
3.git remote add upstream 主流url的git地址
4.git fetch upstream
5.git merge upstream/epmPro //这个是获取主库到fork的库
6.git merge epmPro/upstream //这个是获取fork的库到主库
eclipse git界面操作
提交纪录数据到fork库与主库
1.在当前fork库添加主库的git地址,
2.选择new remote,添加主库的git地址
3.添加之后会选择finish将会把你之前提交在fork库的记录提交到主库中,假如你没有在fork提交纪录,那么这个new remote的地址将会失败也不能提交纪录到主库,需要在改动后再次添加获取主库别人提交的纪录
1.
2.选择你在上一次提交数据记录到主库时添加的git地址库,获取主库的改动纪录
3.选择资源源文件及目的文件库,点击finish,这样就会将数据捕获下来缓存到目的库
4.合并缓存纪录到本地库
这里remove tracking 选择主库,将主库的改动合并到本地
5,show history 就会看到纪录了
git revert
https://blog.fundebug.com/2018/01/24/git-rollback-tutorial/
示例1
最简单的一个场景,就是撤销最近的1次commit:
git revert HEAD
最近1次commit是新增03.txt,撤销这个commit之后,test01分支就只剩下2个文件了:01.txt, 02.txt。
示例2
有时,可能需要撤销某个特定commit,比如,当我需要撤销第2个commit时,指定对应ID即可:
git revert 3821210392184432de18b596cee58ab7924e39f9
最近1次commit是新增02.txt,撤销这个commit之后,test02分支就只剩下2个文件了:01.txt, 03.txt。
由这个示例可知,使用git revert撤销commit时,仅仅针对所撤销的commit,与任何其他commit无关。
git reset:重置为特定commit
示例5
在示例3中,撤销了两个连续的commit,这样做等价于将代码重置为第1个commit的状态:仅有01.txt这1个文件。使用git revert命令有些麻烦,我们可以直接使用git reset命令来实现:
git reset –hard 55d3012564e94a39f6686c0e532c0459ddc41ec4
将仓库强制重置为第1个commit,这样test05分支就只剩下1个文件了:01.txt。git reset –hard与git revert效果看起来一样,但是不同点在于,前者直接删除了后面2个commit及其代码,没有保存commi历史,因此这个操作是不可逆的!使用时应该特别小心。
如果你的本地仓库与远程仓库在reset之前是同步过的,reset之后,两者的commit不一致,本地仓库的commit落后与远程仓库,这样会导致push失败:
git push
To git@github.com:Fundebug/git-rollback.git
! [rejected] test05 -> test05 (non-fast-forward)
error: failed to push some refs to ‘git@github.com:Fundebug/git-rollback.git’
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: ‘git pull …’) before pushing again.
hint: See the ‘Note about fast-forwards’ in ‘git push –help’ for details.
这是需要使用–force选项,这样远程仓库会被强制覆盖:
git push –force
示例6
reset时使用–hard选项是一个很危险的操作,因为它把commit以及代码全删了,没法恢复。如果你只希望删除commit,而保留修改过的代码的话,可以使用–soft选项。
git reset –soft 55d3012564e94a39f6686c0e532c0459ddc41ec4
这时,后面2个commit也被删除了,当前commit为第1个commit。但是,02.txt与03.txt并没有被删除。
git status
On branch test06
Changes to be committed:
(use “git reset HEAD …” to unstage)
new file: 02.txt
new file: 03.txt
这就意味着,当你的commit的代码有一些小问题时,可以重置commit,修改一下代码,如何重新commit即可。## 标题 ##