分支操作
-
Git
的分支,其实质是仅仅指向提交对象的可变指针,所以创建 删除分支开销非常小。HEAD指针表示当前指向的分支,分支的常用命令如下:#1 创建分支 名为testing git-demo1:$ git branch testing #2 查看分支:其中前面标记*的是当前分支 git-demo1:$ git branch *master testing #3 删除分支 当前分支不能为testing git-demo1:$ git branch -d testing #4 切换到指定分支工作后,后续的提交都将在该分支上操作 git-demo1:$ git checkout testing #5 新建分支和切换分支可使用以下一个命令 git-demo1:$ git checkout -b testing
-
合并分支.首先切换到主动合并的分支,如
master
,然后再运行以下命令:分支合并的两种方式:-
如果发起合并的分支是待合并分支的直接上游,只是简单的将指针往前移动即可。
# 考虑当前工作master分支指向16a458 新建testing分支后并切换到当前分支进行工作,经历了两次提交,由于master分支未做改变,所以master分支是testing的直接上游,只需简单移动master即可合并。 git-demo1:$ git checkout master #先切换到master git-demo1:$ git merge testing #合并testing到master分支 git-demo1:$ git branch -d testing #删除testing分支
-
如果不是,则会找共同的祖先,然后再创建一个新的提交。
# 考虑当前工作master分支指向bfdb36a 新建issue53分支并进行切换在此工作,经历了两次提交,由于在此过程中master分支更改一次提交,但是两次的修改没有冲突(不在同一处更改),合并会进行一次新的提交 git-demo1:$ git checkout -b issue53 #先切换到master git-demo1:$ git merge issue53 #合并testing到master分支 git-demo1:$ git branch -d issue53 #删除testing分支
-
远程连接
-
远程仓库可以选择
Github
或者Gitee
,git
秘钥访问配置如下:# 生成秘钥对 考虑同时使用github和gitee两个git服务商. yjf@yjf-box:~$ ssh-keygen -t rsa -f ~/.ssh/github_rsa -C "93628775@qq.com" #生成github秘钥对 yjf@yjf-box:~$ ssh-keygen -t rsa -f ~/.ssh/gitee_rsa -C "ccczyl2006@qq.com" #生成gitee秘钥对 # .ssh文件夹下新增config文件,编辑内容如下 Host github.com HostName github.com PreferredAuthentications publickey IdentityFile /home/yjf/.ssh/github_rsa Host gitee.com HostName gitee.com PreferredAuthentications publickey IdentityFile /home/yjf/.ssh/gitee_rsa # 访问你自己的github页,进入`Settings->SSH and GPG keys->New SSH key`,然后在Key那栏下面将上一步生成的公钥文件github_ras.pub文本内容拷贝进去,最后点击 Add SSH key按钮添加.gitee也同样操作
-
本地已有一个本地仓库,需要与远程关联。
-
网上新建的仓库未带任何文件(无
README.md
,gitignore
,LICENSE
等文件),操作如下:#假定远程git仓库地址:https://gitee.com/ccczyl2006/git-demo1.git git-demo1:$ git remote add origin https://gitee.com/ccczyl2006/git-demo1.git git-demo1:$ git push -u origin master #默认本地master分支关联远程仓库master分支
-
带初始化文件(需要先
git pull origin master --allow-unrelated-histories
),操作如下:#假定远程git仓库地址:https://gitee.com/ccczyl2006/git-demo1.git git-demo1:$ git remote add origin https://gitee.com/ccczyl2006/git-demo1.git git-demo1:$ git pull origin master --allow-unrelated-histories git-demo1: git push -u origin master
-
远程仓库操作命令
-
git clone
克隆远程仓库到本地# git协议的仓库地址写法:[user@]example.com:path/to/repo.git/ 会生成目录 与仓库名同名 默认的远程仓库名为origin ~:$ git clone git@github.com:ccczyl2006/awesome-vscode.git
-
git remote
:用于管理远程仓库服务器的名称,在远程仓库clone
的情况下一般默认为origin,支持以下命令:
git-demo1:$ git remote #显示远程主机名称 origin git-demo1:$ git remote -v #-v参数列出远程主机的详细信息 origin git@gitee.com:ccczyl2006/git-demo1.git (fetch) origin git@gitee.com:ccczyl2006/git-demo1.git (push) # 增加远程主机 适用在先有本地仓库的情况下 origin为指定的远程仓库名 可以去其他名字 git-demo1:$ git remote add origin git@gitee.com:ccczyl2006/git-demo1.git
-
git push
:推送本地分支到远程的对应分支,没有则在远程新建同名的分支# git push 主机名 本地分支:远程分支 #1 省略远程分支,则表示远程分支与本地分支同名 git-demo1:$ git push origin v2 #本地v2推送到远程v2分支 #2 如果在push时指定了-u参数,表示该主机为默认仓库 在当前分支推送时可直接输入git push
-
git pull
:拉取指定主机指定分支到本地,并与本地的指定分支合并,相当于执行git fetch
和git merge
合并# git pull 主机名 远程分支:本地分支 git-demo1:$ git pull origin v3
网友评论