放弃合并
git merge --abort
回退
git reset --soft HEAD^
从命令行创建一个新的仓库
touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin gogs@gogs.babeltime.com:TV/ww.git
git push -u origin master
从命令行推送已经创建的仓库
git remote add origin gogs@gogs.babeltime.com:TV/ww.git
git push -u origin master
git fatal: 拒绝合并无关的历史的错误解决
本地初始化的项目 与 github 版本不一致, 导致无法提交
$ git pull origin master
* branch master -> FETCH_HEAD
fatal: 拒绝合并无关的历史
解决方法
在pull 时候, 添加–allow-unrelated-histories参数 即可.
$ git pull origin master --allow-unrelated-histories
来自 https://github.com/itaken/python-login-demo
* branch master -> FETCH_HEAD
Merge made by the 'recursive' strategy.
LICENSE | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
create mode 100644 LICENSE
创建Develop分支并推送到远程:
新建本地分支:git checkout -b develop master
推送到远程:git push origin feature/v2.0
将Develop分支合并到Master分支:
# 切换到Master分支
git checkout master# 对Develop分支进行合并
git merge --no-ff develop
如果有冲突 解决冲突 git add . git commit -m "" git push
如果没有冲突 直接git push
合并某一次提交:
例如要将A分支的一个commit合并到B分支:
首先切换到A分支
git checkout A
git log
找出要合并的commit ID :
例如
0128660c08e325d410cb845616af355c0c19c6fe
然后切换到B分支上
git checkout B
git cherry-pick 0128660c08e325d410cb845616af355c0c19c6fe
打标签:
git tag -a 0.1.1
推送所有标签
git push origin --tags推送指定版本的标签
git push origin <版本号>
删除分支:
删除本地分支:
git branch -d fixbug-0.1
删除远程分支:
git push origin --delete feature/v2
git远程删除分支后,本地git branch -a 依然能看到的解决办法。
使用命令 git remote show origin,可以查看remote地址,远程分支,还有本地分支与之相对应关系等信息。
此时我们可以看到那些远程仓库已经不存在的分支,根据提示,使用 git remote prune origin 命令
这样就删除了那些远程仓库不存在的分支。
.gitignore规则不生效
.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
1.
所有:git rm -r --cached .
单个文件或文件夹:git rm -r --cached filename
2.git add .
3.git commit -m 'update .gitignore'
4.git push
在 Git 中,如果你想将一个仓库的内容合并到另一个已有的仓库中,而不是通过传统的 fork 操作,你可以使用以下步骤。这些步骤适用于任何 Git 仓库,不仅限于 GitHub。
假设我们有两个仓库:
- 源仓库(source-repo)
- 目标仓库(target-repo)
步骤 1:克隆目标仓库
首先,克隆你的目标仓库到本地:
sh
复制
git
clone
https://github.com/your-username/target-repo.git
cd
target-repo
步骤 2:添加源仓库作为远程仓库
接下来,将源仓库添加为一个新的远程仓库。例如,我们称它为 source
:
sh
复制
git remote add
source
https://github.com/original-owner/source-repo.git
步骤 3:获取源仓库的内容
从源仓库拉取所有分支和标签:
sh
复制
git fetch
source
步骤 4:合并或检查源仓库的内容
现在,你可以选择将源仓库的某个分支合并到目标仓库的相应分支。比如,要将 source-repo
的 main
分支合并到 target-repo
的 main
分支,可以这样做:
sh
复制
git checkout main
git merge
source
/main
如果你只想查看源仓库的内容而不立即合并,可以创建一个新分支来进行操作:
sh
复制
git checkout -b temp-branch
source
/main
这样你就可以在 temp-branch
上进行更改,并在准备好后再合并回主分支。
步骤 5:解决冲突(如有)
如果在合并过程中出现冲突,Git 会提示你手动解决这些冲突。编辑冲突文件以解决问题,然后提交更改:
sh
复制
git add .
git commit -m
"Resolved merge conflicts"
步骤 6:推送更改到远程目标仓库
最后,将合并后的更改推送到远程目标仓库:
sh
复制
git push origin main
总结
通过上述步骤,你可以将一个源仓库的内容合并到已有的目标仓库中。这种方法允许你灵活地控制如何整合不同仓库的代码,而不仅仅依赖于托管平台提供的 fork 功能。