DEVとマスターマージ競合の解決
gitのコマンドの概要
- gitが要約を追加します
· git add -A 提交所有变化
· git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
· git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
- クローンリモートリポジトリ
git clone git-address
- DEVに加えて、すべてのローカルのブランチを削除します
git stash && git checkout dev && git branch | grep -v "dev" | xargs git branch -D
- ignorを追加し、キャッシュを削除します。
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
- 変更内容を追加して提出します
git add -A # A表示把所有更新添加到临时区
git commit -m "注释"
- ほとんどのコードを引っ張るとプッシュ
git pull # 拉取
git push # 推送
- キャッシュを削除し、ファイル汎用コードをフィルタリング.gitignore
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
- 新しいローカルブランチ
git checkout -b 123;
- ローカルブランチはリモートにプッシュされ、関連付けます
git push --set-upstream origin 123
- ラベル、タグ操作
git tag #查看版本
git tag [name] #创建版本
git tag -d [name] #删除版本
git tag -r #查看远程版本
git push origin [name] # 创建远程版本(本地版本push到远程) git push origin :refs/tags/[name] # 删除远程版本
- リベースブランチをマージ
git checkout dev
git pull --rebase
git checkout my
git rebase dev
# 解决冲突
git add -A
git rebase –continue
git push -f
# 自动全并COMMIT:git commit --amend --no-edit 如果代码没有冲突,5,6,7可以省略
- 複数のコミットにまとめ
git merge-base origin/dev my
# display your hashcode
git reset --soft `your hashcode`
git add -A
git commit -m "commit"
git push -f
- オンラインにアップロードするローカルリポジトリ
1. 在远程建立一个仓库,它有https和ssh的地址
2. 本地建立仓库文件夹 mkdir validate
3. 在进行文件夹,cd validate
4. git初始化,git init
5. 映射远程仓库,git remote add origin [email protected]:bfyxzls/schedle.git 6. 添加一个readme.md文件 7. 添加它到本地仓库,git add readme.md 8. 提交本地,git commit -m "initial" 9. 将本地仓库提交的内容推到远程仓库的对应分支,git push -u origin master 10. 大功告成
- 提出ログを表示
git log --oneline //会列出所有commitId
- バージョン履歴に直接切り替え
git reset --hard commitId
- タグ付け
このバージョンでは問題があるときに私たちは、あなたがそれを復元するために行くことができる、時点のタグラインバージョンを作ることができます。
- すべてのラベルをリスト
git tag
- スクリーニングラベル
git tag -l 'v1.4.*'
- 新しいラベル
git tag -a v1.4 -m '对标签的描述'
- 具体的な情報表示タグ
git show v1.4
- アップロードラベル
git push origin v1.5
見通し
メインブランチをマスターし、DEVは開発ブランチで、マスターコードは、日付DEVの状態に維持されます
問題の原因
- 新機能のdevの開発
- リリース、devが本番環境を解放し、マスターにマージ
- 新しい需要がDEVで開発され、来ます
- 一方、ラインコードは、合併後のマスター、マスターのバグを修正、新しい枝を引く、バグがあります
- この時点でのコードは、合併後に競合が存在し得る、マスターDEVと矛盾します
- devが、行の前に、開発した最新のマスターリベースでそれを行うにはまず、競合を解決します
- Gitのリベースはあなたのgitに基づいて行われます紛争解決をコミットし、より迷惑である、すべてのGitは--continueリベース行われるべきです
- gitのログをマスタにマージさdev内にコミットしているかを調べるには、新しいdevのコミットにマージする必要が--soft Gitのリセットを見つけた後
- 最後に、Gitはそれにリベース
関連のgitコマンド
同じマスターコードを探していたときにIDをコミット
$ git log
commit 9f4c0939ce30aca3f4e18e69b2deed7b721b3ebb (HEAD -> master)
Author: lind <bfyxzls@sina.com>
Date: Sat Apr 27 12:45:24 2019 +0800 master2 commit 09b6898a5b32ac5e23745f7b343424170869045a Author: lind <bfyxzls@sina.com> Date: Sat Apr 27 12:44:48 2019 +0800 master1 commit c9507744d6528a3df9529d92953c896a4c2d38a7 Author: lind <bfyxzls@sina.com> Date: Sat Apr 27 12:43:28 2019 +0800 dev2 commit 817d0275820c83acdf5513a5fd5855a6eb84443c Author: lind <bfyxzls@sina.com> Date: Sat Apr 27 12:42:59 2019 +0800
コミットマージ
$ git reset --soft c9507744d6528a3df9529d92953c896a4c2d38a7
$ git add .
$ git commit -m "合并commit"
リベースすると、いくつかの新しい投稿がありますDEVが先行し、数に紛争を提出し、何回か解決する必要があります
$ git rebase master
Administrator@WIN-1AL08P10TJ8 MINGW64 /c/testgit (dev|REBASE 1/1)
解决冲突
、削除するか、最後に対応するコードを維持してから保存し、あなたが提出することができます
Administrator@WIN-1AL08P10TJ8 MINGW64 /c/testgit (dev|REBASE 1/1) $ git add . Administrator@WIN-1AL08P10TJ8 MINGW64 /c/testgit (dev|REBASE 1/1) $ git rebase --continue Applying: 合并commit Administrator@WIN-1AL08P10TJ8 MINGW64 /c/testgit (dev)
- gitが要約を追加します
· git add -A 提交所有变化
· git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
· git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
- クローンリモートリポジトリ
git clone git-address
- DEVに加えて、すべてのローカルのブランチを削除します
git stash && git checkout dev && git branch | grep -v "dev" | xargs git branch -D
- ignorを追加し、キャッシュを削除します。
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
- 変更内容を追加して提出します
git add -A # A表示把所有更新添加到临时区
git commit -m "注释"
- ほとんどのコードを引っ張るとプッシュ
git pull # 拉取
git push # 推送
- キャッシュを削除し、ファイル汎用コードをフィルタリング.gitignore
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
- 新しいローカルブランチ
git checkout -b 123;
- ローカルブランチはリモートにプッシュされ、関連付けます
git push --set-upstream origin 123
- ラベル、タグ操作
git tag #查看版本
git tag [name] #创建版本
git tag -d [name] #删除版本
git tag -r #查看远程版本
git push origin [name] # 创建远程版本(本地版本push到远程) git push origin :refs/tags/[name] # 删除远程版本
- リベースブランチをマージ
git checkout dev
git pull --rebase
git checkout my
git rebase dev
# 解决冲突
git add -A
git rebase –continue
git push -f
# 自动全并COMMIT:git commit --amend --no-edit 如果代码没有冲突,5,6,7可以省略
- 複数のコミットにまとめ
git merge-base origin/dev my
# display your hashcode
git reset --soft `your hashcode`
git add -A
git commit -m "commit"
git push -f
- オンラインにアップロードするローカルリポジトリ
1. 在远程建立一个仓库,它有https和ssh的地址
2. 本地建立仓库文件夹 mkdir validate
3. 在进行文件夹,cd validate
4. git初始化,git init
5. 映射远程仓库,git remote add origin [email protected]:bfyxzls/schedle.git 6. 添加一个readme.md文件 7. 添加它到本地仓库,git add readme.md 8. 提交本地,git commit -m "initial" 9. 将本地仓库提交的内容推到远程仓库的对应分支,git push -u origin master 10. 大功告成
- 提出ログを表示
git log --oneline //会列出所有commitId
- バージョン履歴に直接切り替え
git reset --hard commitId
- タグ付け
このバージョンでは問題があるときに私たちは、あなたがそれを復元するために行くことができる、時点のタグラインバージョンを作ることができます。
- すべてのラベルをリスト
git tag
- スクリーニングラベル
git tag -l 'v1.4.*'
- 新しいラベル
git tag -a v1.4 -m '对标签的描述'
- 具体的な情報表示タグ
git show v1.4
- アップロードラベル
git push origin v1.5