对git分支不了解,今天测试使用git
分支,本地创建了一个 new
分支,commit
后push
报错了,且远程并没有看到new
分支。
远程截图bitbucket.org,只看到默认的master分支,看不到new分支
Welcome to Git (version 1.9.5-preview20141217)
Run 'git help git' to display the help index.
Run 'git help <command>' to display help for specific commands.
Administrator@NSGRZQBMHMHTYQF /E
$ mkdir test
Administrator@NSGRZQBMHMHTYQF /E
$ cd test
Administrator@NSGRZQBMHMHTYQF /E/test
$ touch "d" > 1.txt
Administrator@NSGRZQBMHMHTYQF /E/test
$ ls
1.txt d
Administrator@NSGRZQBMHMHTYQF /E/test
$ git init
Initialized empty Git repository in e:/test/.git/
Administrator@NSGRZQBMHMHTYQF /E/test (master)
$ git status
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
1.txt
d
nothing added to commit but untracked files present (use "git add" to track)
Administrator@NSGRZQBMHMHTYQF /E/test (master)
$ git add --all
Administrator@NSGRZQBMHMHTYQF /E/test (master)
$ git commit -m "head version"
[master (root-commit) 22a9e38] head version
2 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 1.txt
create mode 100644 d
Administrator@NSGRZQBMHMHTYQF /E/test (master)
$ git remote add origin git@bitbucket.org:myacc/br.git
Administrator@NSGRZQBMHMHTYQF /E/test (master)
$ git push -u origin --all # pushes up the repo and its refs for the first time
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 214 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@bitbucket.org:myacc/br.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
Administrator@NSGRZQBMHMHTYQF /E/test (master)
$ git branch new
Administrator@NSGRZQBMHMHTYQF /E/test (master)
$ git checkout new
Switched to branch 'new'
Administrator@NSGRZQBMHMHTYQF /E/test (new)
$ git status
On branch new
nothing to commit, working directory clean
Administrator@NSGRZQBMHMHTYQF /E/test (new)
$ touch "2" > 2.txt
Administrator@NSGRZQBMHMHTYQF /E/test (new)
$ git status
On branch new
Untracked files:
(use "git add <file>..." to include in what will be committed)
2
2.txt
nothing added to commit but untracked files present (use "git add" to track)
Administrator@NSGRZQBMHMHTYQF /E/test (new)
$ git add --all
Administrator@NSGRZQBMHMHTYQF /E/test (new)
$ git status
On branch new
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: 2
new file: 2.txt
Administrator@NSGRZQBMHMHTYQF /E/test (new)
$ git commit -m "branch new head version"
[new 4429a97] branch new head version
2 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 2
create mode 100644 2.txt
Administrator@NSGRZQBMHMHTYQF /E/test (new)
$ git push -u origin:new
warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:
git config --global push.default matching
To squelch this message and adopt the new behavior now, use:
git config --global push.default simple
When push.default is set to 'matching', git will push local branches
to the remote branches that already exist with the same name.
In Git 2.0, Git will default to the more conservative 'simple'
behavior, which only pushes the current branch to the corresponding
remote branch that 'git pull' uses to update the current branch.
See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)
ssh: Could not resolve hostname origin: no address associated with name
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Administrator@NSGRZQBMHMHTYQF /E/test (new)
$ git status
On branch new
nothing to commit, working directory clean
1.创建了分支之后,再 git add .
就添加了,然后git commit -m ""
就提交到了当前的分支?
2.如果运行了 git checkout new
,那么是不是会从远程下载new分支到本地,直接自动合并?
3.如果运行了 git checkout new
,然后关闭git bash再打开git bash,默认的就是new分支了
4.git 默认的分支就是master
分支?
假如开发ubuntu,A程序员在开发LTS12.04
分支,然后B程序员却继续开发 V13
版本?
然后某一次B程序员需要去帮A程序员开发LTS12.04
,那B应该先将项目V13的所有文件git push V13分支,再 git checkout LTS12.04,再git pull拉取所有的LTS12.04分支。修改后,再git push LTS12.04分支,再checkout V13分支,再 git pull V13所有程序,才返回到了V13的分支?
是这样吗?但git pull不是合并了B项目文件夹下的V13和LTS12.04两个版本的代码了吗
难以理解……
Erreur de syntaxe. . . Ne lis-tu même pas le message d'erreur clair
Pousser une nouvelle branche devrait être écrit comme ceci (où avez-vous vu les deux points =.=)
=============================================
Compréhension des succursales
Créer une nouvelle branche ne signifie pas passer à la branche.
git branch new_branch
crée simplement une nouvelle branche à partir de l'état actuel de la branche actuelle. Cependant, la modification directe et la validation à ce moment sont toujours sur la branche actuelle. 🎜> passera à Nouvelle branchegit checkout new_branch
équivaut à la somme des deux commandes ci-dessus
Seulgit checkout -b new_branch
interagit avec l'extrémité distante
"Télécharger la nouvelle branche du distant vers le local et la fusionner directement automatiquement" est l'effet depush/pull/fetch
et autres sont des opérations purement localescommit/checkout
passe simplement de la branche actuellement utilisée à une autre branche locale. branche. Tout le contenu des fichiers dans l’espace de travail passe à l’état d’une autre branche
checkout
sur la nouvelle branche
Oui, le statut de la branche est conservé et toutes les informations sont enregistrées dans le répertoire .gitgit pull
Ensuite, une fois, le programmeur B doit aider le programmeur A à développer LTS12.04, puis B doit d'abord git push tous les fichiers du projet V13 vers la branche V13
, puis git checkout LTS12.04, puis git pull pour extraire tous les LTS12. .04 branche
不需要push,但必须commit/stash 否则修改内容会丢失
. Après modification,这里应该描述为拉取1204分支上所有的远端变更
puis git push la branche LTS12.04, puis extrayez la branche V13, puis git pull tous les programmes V13先git commit
avant de revenir à la branche V13 ?同样不需要pull
est-ce ainsi? Mais git pull n'a-t-il pas fusionné les codes des versions V13 et LTS12.04 dans le dossier du projet B ?pull只会从远端拉取其他人push上去的变更,合并到本地“对应”的分支,跨分支的合并只能在本地通过git merge完成
Git vous appelle pour examiner attentivement les messages d'erreur des autres ! Terminé
sera normal, et la commande de
push
estAh ! Quand est-il devenu
origin:new
?Cela devrait être
push
Il y a un problème dans ce processus :git push origin new
Q : Après avoir créé une branche, git add l'ajoute, puis git commit -m "" la valide dans la branche actuelle ?
A : Soumettez le code localement
Q : Si vous exécutez git checkout new, la nouvelle branche sera-t-elle téléchargée du distant vers le local et automatiquement fusionnée directement ?
A : Ne téléchargera pas la branche
new
du distant vers le local à moins d'un appel explicitegit pull origin
Q : Si vous exécutez
git checkout new
, puis fermez git bash et ouvrezgit bash
, la valeur par défaut est la nouvelle brancheA : C’est vrai
Q : La branche par défaut de
gi
t-elle la branchemaster
?A :
git
La branche par défaut est la branchemaster
Il est recommandé de l'apprendre dès le début : https://github.com/numbbbbb/progit-zh-pdf-epub-mobi
Pour pousser la branche newBranch, vous devez fusionner la nouvelle branche sur le maître : git merge newBranch
Étapes globales :