文章目录
1.初始化本地仓库并关联远端仓库
git init——本地空仓库初始化。
如果后边没有指定文件夹路径,则默认在当前文件夹下初始化;如果指定了,就会在指定文件夹下初始化本地仓库。在 git init 初始化一个空的本地仓库时,如果不指定 -b 参数,默认初始化本地分支名称为 master ,我们也可以通过添加 -b 参数指定初始化后的分支名称。当然,分支名称也可以通过 git branch -m 命令修改(见第2节)。
git remote add remote_repo_name url——关联远端的仓库(或者说添加一个新的远程仓库引用到当前的项目)。这里的 url 就是项目链接,或者说是远端仓库地址。这里的 remote_repo_name 可以自己指定,实际上就是给远端仓库地址起的别名(也称远端仓库名),便于后续使用,注意后续拉取远端代码与代码推送远端仓库时注意与此处保持一致就行。如果你后续使用git pull或git push命令时,尝试将远程分支名直接换成 url 地址,会发现也是可以成功拉取特定分支的。
2.本地分支管理
新建分支:
git checkout -b branch_name
# 这个命令会新建一个分支,并切换到该分支。相当于以下两条命令
git branch branch_name
git checkout branch_name # 可以切换到该分支
还可以直接使用如下命令,直接创建一个新的分支。
git branch branch_name
切换分支:
# 使用switch
git switch branch_name
# 使用checkout
git checkout branch_name
删除分支:
git branch -d branch_name
修改分支名称:
git branch -m old_branch_name new_branch_name
3.如何查看分支信息?
git branch #可以查看到本地分支的信息。加上 -l 参数于此效果一致,此外加上 -l 参数后,还可以跟一个模式字符串,以匹配特定的分支。
git branch -a #查看本地以及远端的分支信息
git branch -r #查看跟踪的远端的分支
git ls-remote remote_repo_name #在当前目录已经和远端目录建立连接的情况下,可以使用此命令,查看远端仓库的分支信息
git ls-remote url #这里的 url 可以是任意代码仓库的 url 地址,此命令可以查看该项目仓库中的分支信息
git branch --merged #查看当前**已经合并**的分支信息
git branch --no-merged #查看当前**尚未合并**的分支信息
4.如何能够获取远端的特定分支?
4.1 使用pull获取指定分支
在使用git remote add remote_repo_name url将其关联到远端仓库的时候,url 其实就包含了远端各个分支的信息。关联之后,使用 git pull remote_repo_name branch_name 命令,指定远端分支名,即可获取远端指定的分支。注意这里的 remote_repo_name 就是之前给远端仓库地址起的别名。如果我们想在本地创建一个与远端分支情况保持一致的本地库,可以在本地创建多个分支,不同分支分别拉取对应远端分支的代码。
4.2 使用clone时获取指定分支
如果想克隆远端固定分支的代码,可以添加 -b 参数,如git clone -b branch_name url。即便没有关联远端的仓库,也可以使用此命令,获取指定项目的特定分支。
4.3 使用fetch获取指定分支
使用 git fetch remote_repo_name branch_name ,可以将远端的分支拉取到本地。同时,如果说远端的代码已经有更新的提交,fetch 命令会从远端抓取本地没有的代码。
当 git fetch 命令从服务器上抓取本地没有的数据时,它并不会修改工作目录中的内容。 它只会获取数据然后让你自己合并。 而 git pull 在大多数情况下它的含义是一个 git fetch 紧接着一个 git merge 命令。 这里的 merge 就是合并的命令。
4.4 注意事项
在本地的某个分支,即便可能分支名字与远端相同,实际上这两个分支是独立的。本地的分支名称可以自己控制,因此,在使用的时候,要注意本地的某个分支与远端的哪个分支相对应。建议将本地的分支名称与远端的保持一致,尽可能不混淆。
在使用 git clone 的时候,会默认将远端仓库名,也就是上述的 remote_repo_name 指定为 origin, 默认本地分支名为 master 。
5.如何进行提交?
使用命令 git push 命令,可以将代码推送至远端。注意在将代码推送到远端的时候,可能需要进行登陆认证,当前的方法参见这里。
完整命令:
git push remote_repo_name local_branch:remote_branch
如果远端只有一个分支,可以省略远程分支名,直接使用:
git push remote_repo_name
6.删除远端分支
可以运行带有 –delete 选项的 git push 命令来删除一个远程分支。如下:
git push remote_repo_name --delete remote_branch