现在做网站怎么样,网站运营与管理规划书,企业征信网上查询系统官网,建设购物网站需要多少钱目录
一、克隆远程仓库
二、推送远程仓库
三、拉取远程仓库
四、忽略特殊文件
五、命令配置别名 一、克隆远程仓库
Git是分布式版本控制系统#xff0c;同⼀个Git仓库#xff0c;可以分布到不同的机器上。怎么分布呢#xff1f;
找⼀台电脑充当服务器的⻆⾊#xff…目录
一、克隆远程仓库
二、推送远程仓库
三、拉取远程仓库
四、忽略特殊文件
五、命令配置别名 一、克隆远程仓库
Git是分布式版本控制系统同⼀个Git仓库可以分布到不同的机器上。怎么分布呢
找⼀台电脑充当服务器的⻆⾊每天24⼩时开机其他每个⼈都从这个“服务器”仓库克隆⼀份到⾃⼰的电脑上并且各⾃把各⾃的提交推送到服务器仓库⾥也从服务器仓库中拉取别⼈的提交。
国内外有很多这样的服务器如Github、Gitee……
新建远程仓库的操作需要在Gitee或Github服务器网站上进行在新建远程仓库成功之后需要通过 git clone 命令远程仓库 克隆/下载 到本地。
SSH协议和HTTPS协议是Git最常使⽤的两种数据传输协议。SSH协议使⽤了公钥加密和公钥登陆机制体现了实⽤性和安全性使⽤此协议需要将我们的公钥放上服务器由Git服务器进⾏管理。使⽤HTTPS⽅式时没有要求可以直接克隆下来。
使用HTTPS方式输入用户名、密码后便可直接克隆非常简单。
使用SSH方式需要先创建 SSH Key在用户主目录下看看有没有 .ssh 目录如果有再看看有没有 id_rsa.pub 和 id_rsa 两个文件如果有了说明当前用户已经创建了SSH Key。
如果没有则需要输入 ssh-keygen -t rsa -C 邮箱 再一路回车进行创建。
创建成功之后通过 cat ~/.ssh/ssh_rsa.pub 查看自己的公钥公钥是可以告诉别人的将公钥复制到 Git 服务器的SSH公钥选项中就可以通过SSH链接克隆远程仓库了。
如果有多个⼈协作开发GitHub/Gitee允许添加多个公钥只要把每个⼈的电脑上的Key都添加到GitHub/Gitee就可以在每台电脑上往GitHub/Gitee上提交推送了。
当我们从远程仓库克隆后实际上Git会⾃动把本地的master分⽀和远程的master分⽀对应起来并且远程仓库的默认名称是 origin 。在本地我们可以使⽤ git remote 命令来查看远程库的信息。
# 通过 git remote -v 显示更详细的信息(base) [rootlocalhost git-learning]# git remote
origin
(base) [rootlocalhost git-learning]# git remote -v
origin gitgitee.com:hdu-a-chao/git-learning.git (fetch)
origin gitgitee.com:hdu-a-chao/git-learning.git (push)
(base) [rootlocalhost git-learning]# # 上面显示了可以抓取和推送的地址也代表了我们有抓取和推送的权限。 二、推送远程仓库
# 使用 git push 将本地内容推送到远程仓库
# 完整命令格式git push 远程主机名 本地分⽀名:远程分⽀名
# 如果本地分⽀名与远程分⽀名相同可以简写为git push 远程主机名 本地分⽀名
# 如果当前分支只有一个远程分支可以简写为git push(base) [rootlocalhost git-learning]# ls
README.en.md README.md
(base) [rootlocalhost git-learning]# vim file1
(base) [rootlocalhost git-learning]# cat file1
hello git
(base) [rootlocalhost git-learning]# git add .
(base) [rootlocalhost git-learning]# git commit -m add first file
[master ec3bb79] add first file1 file changed, 1 insertion()create mode 100644 file1
(base) [rootlocalhost git-learning]# git push
Counting objects: 4, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 302 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [1.1.5]
remote: Set trace flag b64b1287
To gitgitee.com:hdu-a-chao/git-learning.gitdd56a90..ec3bb79 master - master
(base) [rootlocalhost git-learning]# 三、拉取远程仓库
在 Gitee 上点击 file1 ⽂件并在线修改它: 这时的远程仓库是领先本地仓库一个版本的如果我们此时需要将本地仓库内容直接推送到远程仓库是会报错的因为版本不一致所以需要通过 git pull 从远程获取代码并合并本地的版本。
# 完整命令git pull 远程主机名 远程分⽀名:本地分⽀名
# 如果远程分⽀是与当前分⽀合并可简写为git pull 远程主机名 远程分⽀名
(base) [rootlocalhost git-learning]# git pull origin master
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
来自 gitee.com:hdu-a-chao/git-learning* branch master - FETCH_HEAD
更新 ec3bb79..1ccab43
Fast-forwardfile1 | 1 1 file changed, 1 insertion()
(base) [rootlocalhost git-learning]# cat file1
hello git
Git 在线修改!(base) [rootlocalhost git-learning]# 四、忽略特殊文件
在⽇常开发中我们有些⽂件不想或者不应该提交到远端⽐如保存了数据库密码的配置⽂件那怎么让Git知道呢在Git⼯作区的根⽬录下创建⼀个特殊的 .gitignore ⽂件然后把要忽略的⽂件名填进去Git就会⾃动忽略这些⽂件了。
不需要从头写 .gitignore ⽂件gitee在创建仓库时就可以为我们⽣成不过需要我们主动勾选⼀下 如果当时没有选择这个选择在⼯作区创建⼀个也是可以的。⽆论哪种⽅式最终都可以得到⼀个完整的 .gitignore ⽂件例如我们想忽略以 .so 和 .ini 结尾所有⽂件 .gitignore 的内容如下
# 省略选择模本的内容
...# My configurations:
*.ini
*.so
(base) [rootlocalhost git-learning]# ls
file1 file.ini file.so README.en.md README.md
(base) [rootlocalhost git-learning]# vim .gitignore
(base) [rootlocalhost git-learning]# cat .gitignore
*.ini
*.so
(base) [rootlocalhost git-learning]# touch file.ini file.so
(base) [rootlocalhost git-learning]# ls
file1 file.ini file.so README.en.md README.md
(base) [rootlocalhost git-learning]# git add .
(base) [rootlocalhost git-learning]# git commit -m add files: file.ini file.so
[master 8d78346] add files: file.ini file.so1 file changed, 2 insertions()create mode 100644 .gitignore
(base) [rootlocalhost git-learning]# git push origin master
Counting objects: 4, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 343 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [1.1.5]
remote: Set trace flag dd40f5b4
To gitgitee.com:hdu-a-chao/git-learning.git1ccab43..8d78346 master - master
(base) [rootlocalhost git-learning]# (base) [rootlocalhost git-learning]# touch file1.ini file1.so
(base) [rootlocalhost git-learning]# ls
file1 file1.ini file1.so file.ini file.so README.en.md README.md
(base) [rootlocalhost git-learning]# git status
# 位于分支 master
无文件要提交干净的工作区
(base) [rootlocalhost git-learning]# # 分析原因原来是因为被 .gitignore 选定的文件会忽略在工作区的修改
# 如果我们想要提交的文件被忽略了我们可以用 git add -f [file] 强制添加
# 查看某个文件是否被忽略(base) [rootlocalhost git-learning]# git check-ignore -v file1.so
.gitignore:2:*.so file1.so
(base) [rootlocalhost git-learning]## Git会告诉我们 .gitignore 的第2⾏规则忽略了该⽂件于是我们就可以知道应该修订哪个规则。
# 还有些时候当我们编写了规则排除了部分⽂件时例如排除所有.开头的隐藏⽂件: .*
# 但是我们发现 .* 这个规则把 .gitignore 也排除了。
# 虽然可以⽤ git add -f 强制添加进去但我们也可以编写例外规则!.gitignore 五、命令配置别名
在我们使⽤Git期间有些命令敲的时候着实让⼈头疼太⻓了。。幸运的是git⽀持对命令进⾏简化。
# 将 git status 简化为 git st (base) [rootlocalhost git-learning]# git config --global alias.st status
(base) [rootlocalhost git-learning]# git st
# 位于分支 master
无文件要提交干净的工作区
(base) [rootlocalhost git-learning]# git status
# 位于分支 master
无文件要提交干净的工作区
(base) [rootlocalhost git-learning]# # --global 参数是全局参数也就是这些命令在这台电脑的所有Git仓库下都有⽤。
# 如果不加那只针对当前的仓库起作⽤。