一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情。
参与的fullstackopen course作业需要用git管理,简单学习一下。
git初级使用
先简单理解下这个图
step 1.下载安装配置git
a.镜像源下载git
b.安装git
$ git —version 查看是否安装成功
windows操作如果有错误:git不是内部命令 添加到环境变量
c.配置git
有引号,邮箱尽量保持和gitee/github的注册Email一致
$ git config --global user.name "你的名字"
$ git config --global user.email "你的Email"
step 2.创建本地仓库(Repository)
命令行cd 进到你的工作文件夹(Workspace)之后:
$ git init //把本地文件夹初始化成git本地仓库(Repository)
$ git add . // 把你项目文件全添加到暂存区(Index Stage)
$ git status //这个就是看一下你变更了哪些文件,没有这句不影响啥
$ git commit -m "my first commit" // 从暂存区提交到本地仓库(Repository)
- 若.gitignore文件无效,解决方法:
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
- 若提交的仓库子文件中还有仓库,git提示使用
submodule,理解
step 3.创建远程仓库(Remote)并与本地仓库关联
a.在gitee创建仓库
注册账号,新建仓库,仓库起个名就行(最好与本地库保持一致),下面自动生成的三个文件先不选,创好仓库之后,建立连接需要两步:
b.设置SSH公钥
SSH key 可以让你在你的电脑和 Git @ OSC 之间建立安全的加密连接。
生成:
$ ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
打开id_rsa.pub,复制文件内容:
$ `cat ~/.ssh/id_rsa.pub`
测试公钥是否添加成功:
$ ssh -T git@gitee.com
c.本地库连接到远程仓库上
$ git remote add origin git@gitee.com:xxxx/xxxxx.git
origin是你起的远程主机名,后面这个地址是你想要关联的远程仓库地址,用SSH协议
查看远程主机名及地址:
$ git remote -v
origin https://gitee.com/one-three-three-one/fullstackopen-course.git (fetch)
origin https://gitee.com/one-three-three-one/fullstackopen-course.git (push)
上面命令表示,当前只有一台远程主机,叫做origin,以及它的网址
step 4.仓库管理
a.分支
💡先明确一点: 不同分支上的操作并不互相影响
显示仓库有哪些分支:
$ git branch
* master
创建、切换到testing分支:
$ git branch testing
$ git branch
* master
testing
$ git checkout testing
master
* testing
以上也可一句:
$ git checkout -b testing
Switched to a new branch 'testing'
💡我们创建并切换到一个分支,在该分支上移除了一些文件 如test.txt,并添加了 runoob.php 文件,然后切换回我们的主分支,删除的 test.txt 文件又回来了,且新增加的 runoob.php 不存在主分支中。使用分支将工作切分开来,从而让我们能够在不同开发环境中做事,并来回切换。
b.clone
刚才是我们在本地自己创建仓库并与远程库关联,如果我们想直接从远程主机克隆一个版本库:
$ git clone <版本库的网址>
该命令会在本地主机生成与远程主机的版本库同名的目录,并且所有本地分支默认与远程主机的同名分支建立追踪关系,也就是说,本地的master分支自动"追踪"origin/master分支。💡 默认只克隆master分支,想要clone指定分支:
$ git clone -b <指定分支名称> <版本库的网址>
稀疏检出模式 Git Sparse Checkout
$ git sparse-checkout init
$ git sparse-checkout disable
$ git sparse-checkout set <filename>
c.pull
取回远程主机某个分支的更新,再与本地的指定分支合并。完整格式:
$ git pull <远程主机名> <远程分支名>:<本地分支名>
举例说明:取回origin主机的next分支,与本地的master分支合并
$ git pull origin next:master
<本地分支名>什么时候可以省略? 当前分支就是要合并的分支 <远程分支名>什么时候可以省略? 当前分支与远程分支存在追踪关系,除了如上clone下来的库自动追踪,我们还可以手动建立追踪关系:
$ git branch --set-upstream master origin/next
<远程主机名>什么时候可以省略? 当前分支只有一个追踪分支
d.push
用于将本地分支的更新,推送到远程主机。完整格式:
$ git push <远程主机名> <本地分支名>:<远程分支名>
如果远程主机的版本比本地版本更新,推送时Git会报错,要求先在本地做git pull合并差异,然后再推送到远程主机。这时,如果你一定要推送,可以使用--force选项。
$ git push --force origin master