Git与GitHub的关系
Git是版本控制工具,用来管理本地的代码工程,它可以记录代码内容的变更;Github是一个代码托管平台,我们可以使用Git将本地代码上传到Github 。
Git的工作流程
- 工作区(Workspace):电脑本地目录,即平时存放项目代码的地方
- 暂存区(Index/Stage):临时存放改动信息的地方
- 本地仓库(Repository):存放所有提交的版本数据
- 远程仓库(Remote):托管代码的服务器,如Github、GItLab等
修改文件时 git 的主要工作流程 及 对应的命令:
- 在电脑本地的工作区中添加或删除或修改文件
- 将工作区中修改的文件放入暂存区 (git add xxx)
- 将暂存区的文件提交到git本地仓库 (git commit)
- 将本地仓库推送到远程仓库 (git push)
- 从远程仓库中拉取到本地 (git pull)
Git常见操作:
初始化一个git本地仓库:
# 方法一:在gitBash中cd到想要创建本地仓库的目录后,使用以下命令
git init # 此时目录中会生成一个.git文件夹
# 方法二:从远程仓库克隆一个仓库
git clone https:github.com/xxx/xxx.git
将该本地的git仓库与一个远程仓库连接
本例以 Github 为例作为远程仓库,如果你没有 Github 账号可以在官网注册。
由于本地 Git 仓库和 GitHub 仓库之间的传输是通过SSH加密的,所以我们需要在本地和github上配置SSH验证信息(此步略)
之后在github上新建一个远程仓库repository,假设名称为testRepository,你在git本地为它起个简短的名字origin
之后对本地git仓库和远程的仓库进行连接:
git remote add [shortname] [url]
# 例: 其中origin是你给远程仓库起的名字shortname
git remote add origin git@github.com:xxx(你的Github账号名称)/testRepository(你建的GitHub远程仓库名称).git
将已修改文件添加至暂存区
git add filename # 添加指定的文件到暂存区
git add . # 添加所有已修改的文件到暂存区
将暂存区的文件提交到git本地仓库
git commit -m "第一次修改" # ""中是本次修改的简要信息说明注释
将本地仓库推送到远程仓库
git push [alias] [branch] # 如:
git push -u origin master
# 其中origin是远程仓库的shortname,
# master是主线(建立仓库后自动生成的)
# 你可以把master换成其他分支,但需要你之前新建一个分支
从远程仓库中拉取到本地 (git pull)
git pull origin master # 更新本地,其中master可以更换为其他分支
删除仓库
删除仓库有好几个不同的涵义:
- 断开本地git仓库与远程仓库的链接:
git remote rm origin
- 删除远程仓库:以GitHub为例,参考这篇文章:删除github的仓库repository
- 删除git本地仓库: 实际上是删除目录下的.git文件夹(如下命令),删除后目录下就是普通的文件夹了,删除即可。
rm -rf .git
分支管理
初始时git中只有一个master分支
- 常见一个新分支,命名为newbranch,并切换到新分支
git checkout -b newbranch # 表示创建并切换到分支
- 切换到xx分支
git checkout master # 切换到master分支
- 合并分支
git merge newbranch # 将分支合并到master上
标签 tag
# 列举所有标签
git tag
# 列举包含指定字符的标签
git tag -1 "V1.*"
# 创建标签
git tag -a v1.0 -m "标签附注信息"
# 推送标签
git push origin <tagname>
# 推送所有标签
git push origin --tags
# 删除标签
git tag -d <tagname> # 删掉本地仓库上的指定标签
git push remote :refs/tags/<tagname> # 上述指令不会删除远程仓库中的标签,需使用这个命令来更新远程仓库
# 切换标签
git checkout v1.0 # 将git仓库的HEAD指针指向vi.0标签所在的提交