巩义推广网站哪家好,网站横幅代码,wordpress 慢的上天,做同城信息网站怎么赚钱目录 一. 分布式版本控制管理系统
1. 理解分布式版本控制管理系统
二. 创建远程仓库
编辑 编辑
三. 克隆远程仓库_HTTP
四. 克隆远程仓库_SSH
配置公钥
添加公钥
五. git 向远程仓库推送
六. 拉取远程仓库
七. 忽略特殊文件
八. 配置别名 一. 分布式版本控制管理…目录 一. 分布式版本控制管理系统
1. 理解分布式版本控制管理系统
二. 创建远程仓库
编辑 编辑
三. 克隆远程仓库_HTTP
四. 克隆远程仓库_SSH
配置公钥
添加公钥
五. git 向远程仓库推送
六. 拉取远程仓库
七. 忽略特殊文件
八. 配置别名 一. 分布式版本控制管理系统 实际上我们的 git 是一个分布式版本控制管理系统那么什么是分布式版本控制管理系统呢
1. 理解分布式版本控制管理系统 我们现在要开发一个产品我们是需要多人协作开发的所以我们现在每个人都有一台电脑我们的每台电脑上都有一个 git 仓库我们为了多人协作开发方便所以我们现在有一个中央服务器中央服务器里面有一个仓库用来存储我们协作开发的内容如果我们中的任何一个人想要看别人开发的代码我们只需要在中央服务器上 clone 下来然后我们就可以看到别人开发的代码了
上面的这个是我们自己弄的而 git 就是已经帮我们弄好了所以 分布式版本控制管理系统就是上面的那个样子 二. 创建远程仓库 我们使用的 git 平台是 码云 如果没有账户的话可以先创建一个
下面会一步一步来先到 gti 官网登录上自己的账号然后点击右上角的 ‘’然后点击 “新建仓库” 我们先看一下初始化仓库里面的这些选项有什么用
选则语言就是我们仓库代码的语言
模板就是里面有一些模板其中就有 gitignore 模板有该模板的话可以在 add的时候自动忽略一些没有用的文件
开源许可证选则了某个开源项目的话就可以使用里面的某些内容等... 设置模板就是创建完仓库里面自带的文件
Readme就是用来介绍该仓库项目的
Issue就是写该项目遇到的问题的以及可以管理这些问题
Poll Request就是当我们有一个分支想要 merge 的时候我们需要申请而Pull Request 就是申请 分支模型我们之前学过的分支如果不选的话我们也自动创建一个 master 分支
然后我们选则完毕后点击创建就创建完成 如果我们想要对仓库进行管理的话那么我们就点击管理 我们就可以对仓库进行管理 三. 克隆远程仓库_HTTP 我们在我们的这个仓库里面 首先点击 克隆/下载然后点击 HTTPS 在点击复制然后我到我们的远程服务器上我们使用 git clone 复制的 URL
注意不要在任何一个仓库目录下克隆
我们克隆后我们要输入我们的 gitee 的用户名 然后输入我们的 gitee 的密码linux下密码是不回显的
[lxyhecs-165234 ~]$ git clone https://gitee.com/naxxkuku/remot-gitcode.git
Cloning into remot-gitcode...
Username for https://gitee.com: naxxkuku
Password for https://naxxkukugitee.com:
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 7 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (7/7), done. 我们克隆好后我们的仓库就是这个样子 而这个远程仓库origin 就是我们的远程仓库的名称
指令git remote 查看远程仓库名统称
[lxyhecs-165234 remot-gitcode]$ git remote
origin
指令git remote -v 查看远程仓库的详细信息
[lxyhecs-165234 remot-gitcode]$ git remote -v
origin https://gitee.com/naxxkuku/remot-gitcode.git (fetch)
origin https://gitee.com/naxxkuku/remot-gitcode.git (push) 上面的 URL 就是远程仓库的地址而括号里面的 fetch(表示可以拉) push(表示可以推)
如果我们本地没有远程仓库的内容那么我们就要使用 fetch权限然后把本地仓库没有的给拉下来
如果我们本地仓库想要把开发的内容放到远程仓库那么我们就要使用 push权限把本地新的内容推送到远程仓库 四. 克隆远程仓库_SSH 使用 SSH 协议使用的是公钥加密和公钥登录的一个机制我们要向使用SSH的话我们需要将自己的服务器上的公钥放到 git 上进行管理。
下面查看 git 上是否配置公钥。 这里我们的 git 并没有配置公钥我们配置一下。
如果这里没有配置然后直接克隆试一下。
[lxyhecs-165234 ~]$ git clone gitgitee.com:naxxkuku/remot-gitcode.git
Cloning into remot-gitcode...
The authenticity of host gitee.com (180.76.198.77) cant be established.
ECDSA key fingerprint is SHA256:FQGC9Kn/eye1W8icdBgrQpKkGYoFgbVr17bmjey0Wc.
ECDSA key fingerprint is MD5:27:e5:d3:f7:2a:9e:eb:6c:93:cd:1f:c1:47:a3:54:b1.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added gitee.com,180.76.198.77 (ECDSA) to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.Please make sure you have the correct access rights
and the repository exists.这里就出错了。 配置公钥 到用户目录下查看是否有 .ssh 文件没有就创建 如果有的话查看是否有 id_rsa 和 id_rsa.pub,其中 id_rsa.pub 就是公钥有的话就直接复制粘贴到那个配置项里面就可以了 没有的话我们输入这条命令 ssh-keygen -t rsa -C 2146047600qq.com这个邮箱是 git 上填的邮箱输入后这里一路回车什么都不用填写。 [lxyhecs-165234 .ssh]$ ssh-keygen -t rsa -C 2146047600qq.com
Generating public/private rsa key pair.
Enter file in which to save the key (/home/lxy/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/lxy/.ssh/id_rsa.
Your public key has been saved in /home/lxy/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:BzyRXqxyiIJCaTFmGs8ErLp9TFFtb47xn/svPYEC3po 2146047600qq.com
The keys randomart image is:
---[RSA 2048]----
|* ..o |
|X. ...o |
|.o o |
| . o o o |
|o . . oS* . |
|. . .ooo . . |
| o o o... ..|
|. . o E o ...|
| . .o.oo|
----[SHA256]-----
[lxyhecs-165234 .ssh]$ ll
total 12
-rw------- 1 lxy lxy 1679 Jul 30 15:56 id_rsa
-rw-r--r-- 1 lxy lxy 399 Jul 30 15:56 id_rsa.pub
-rw-r--r-- 1 lxy lxy 185 Jul 30 15:46 known_hosts下面积都创建好了。
添加公钥
配置好后我们打开公钥然后赋值粘贴到配置项里面。 配置好后要输入密码。 这样就配置完成。 配置结束后就继续克隆。
[lxyhecs-165234 ~]$ git clone gitgitee.com:naxxkuku/remot-gitcode.git
Cloning into remot-gitcode...
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 7 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (7/7), done.这样就成功了。 五. git 向远程仓库推送 当我们的有远端仓库的时候我们在查看一下 git 的配置我们需要把git里面的 name 和 email 都配置成我们git 的。 名字就是这个。
邮箱就是我们 git 上填写的邮箱。 [lxyhecs-165234 remot-gitcode]$ git config --global user.name naxxkuku
[lxyhecs-165234 remot-gitcode]$ git config --global user.email 2146047600qq.com
[lxyhecs-165234 remot-gitcode]$ git config -l
user.namenaxxkuku
user.email2146047600qq.com
core.repositoryformatversion0
core.filemodetrue
core.barefalse
core.logallrefupdatestrue
remote.origin.urlgitgitee.com:naxxkuku/remot-gitcode.git
remote.origin.fetchrefs/heads/*:refs/remotes/origin/*
branch.master.remoteorigin
branch.master.mergerefs/heads/master着用就配置好了。
[lxyhecs-165234 remot-gitcode]$ git push origin master:master[lxyhecs-165234 remot-gitcode]$ git add .
[lxyhecs-165234 remot-gitcode]$ git commit -m linux 远程测试
[master 00846ac] linux 远程测试1 file changed, 0 insertions(), 0 deletions(-)create mode 100644 test.txt
[lxyhecs-165234 remot-gitcode]$ git status
# On branch master
# Your branch is ahead of origin/master by 1 commit.
# (use git push to publish your local commits)
#
nothing to commit, working directory clean
[lxyhecs-165234 remot-gitcode]$ git push origin master:master
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 283 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To gitgitee.com:naxxkuku/remot-gitcode.git5fe97e9..00846ac master - master这里就好了这里在细看一下 push
这里就是git push 命令然后后面是 origin 表示远端在后面是一个 master 表示本地的master 分支后面的master 分支表示向远端的master分支推送这里如果本地和远端都是master分支那么其实是可以省略只写一个的。 这时候我们的远程仓库也就推送到了。 六. 拉取远程仓库 场景当为我们和其他人共同使用一个仓库时我们需要别人编写的内容所i我们需要从远端仓库拉取下来。
这里就不使用这种场景了这里我们就直接修改远端的数据然后我们在向下拉取。 现在我们开始向下拉取。
[lxyhecs-165234 remot-gitcode]$ git pull origin master:master[lxyhecs-165234 remot-gitcode]$ git pull origin master: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.
From gitee.com:naxxkuku/remot-gitcode3e140e1..a16ec9b master - master
Warning: fetch updated the current branch head.
Warning: fast-forwarding your working tree from
Warning: commit 3e140e153a9dae37ce64c4d81032588ce3f88507.
Already up-to-date.
[lxyhecs-165234 remot-gitcode]$ cat test.txt
hello world
拉取测试~~~ 我们这里拉取成功了。
这个就是拉取origin 也表示远端master分别表示远端和本地这两个也能省略写。 七. 忽略特殊文件 在创建文件的时候我们可以挑选 .gitignore 文件这个文件可以帮助我们忽略掉我们不想要被管理的文件。 我们当时创建库的时候并没有选择该文件所以我们可以创建一个。
[lxyhecs-165234 remot-gitcode]$ cat .gitignore
# 忽略文件*.so
*.exe我们向该文件里面写入 *.so 表示所有的 so后缀的文件都会被忽略。
现在我们测试一下。
[lxyhecs-165234 remot-gitcode]$ touch test.so
[lxyhecs-165234 remot-gitcode]$ git status
# On branch master
# Your branch is ahead of origin/master by 1 commit.
# (use git push to publish your local commits)
#
# Untracked files:
# (use git add file... to include in what will be committed)
#
# .gitignore
nothing added to commit but untracked files present (use git add to track)我们创建了一个 test.so 文件然后我们 git status 查看我们发现只有我们刚才的 .gitignore 文件我们的 test.so 文件已经被忽略。
那么我们再试一下我们创建一个 test.txt 文件然后我们push后查看远端。
[lxyhecs-165234 remot-gitcode]$ touch test.exe
[lxyhecs-165234 remot-gitcode]$ vim test.exe
[lxyhecs-165234 remot-gitcode]$ vim test.so
[lxyhecs-165234 remot-gitcode]$ git add .
[lxyhecs-165234 remot-gitcode]$ git commit -m .gitignore 文件测试
[master e3e09e3] .gitignore 文件测试1 file changed, 4 insertions()create mode 100644 .gitignore
[lxyhecs-165234 remot-gitcode]$ git push origin master
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 313 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To gitgitee.com:naxxkuku/remot-gitcode.gita16ec9b..e3e09e3 master - master我们发现并未被提交。那么我们就是向提交某一个 .so 文件呢
[lxyhecs-165234 remot-gitcode]$ git add -f right.so[lxyhecs-165234 remot-gitcode]$ touch right.so
[lxyhecs-165234 remot-gitcode]$ git add -f right.so
[lxyhecs-165234 remot-gitcode]$ git commit -m 强制提交忽略文件测试
[master 4f7a650] 强制提交忽略文件测试1 file changed, 0 insertions(), 0 deletions(-)create mode 100644 right.so
[lxyhecs-165234 remot-gitcode]$ git push origin master
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 303 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To gitgitee.com:naxxkuku/remot-gitcode.gite3e09e3..4f7a650 master - master这里要是想强制提交那么就是带 -f 选项但是这样带 -f 选项会破坏规则所以我们还可以在 .gitignore 文件里面继续编写。
[lxyhecs-165234 remot-gitcode]$ cat .gitignore
# 忽略文件*.so
*.exe!left.so我们在前面加 就表示不忽略该文件。下面测试一下。
[lxyhecs-165234 remot-gitcode]$ touch left.so
[lxyhecs-165234 remot-gitcode]$ git add .
[lxyhecs-165234 remot-gitcode]$ git commit -m .gitignore文件不忽略测试
[master ba0b6df] .gitignore文件不忽略测试2 files changed, 2 insertions()create mode 100644 left.so
[lxyhecs-165234 remot-gitcode]$ git push origin master
Counting objects: 5, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 334 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To gitgitee.com:naxxkuku/remot-gitcode.git4f7a650..ba0b6df master - master 如果当我们的 .gitignore 文件里面的忽略配置太多我们也不知道我们到底有没有忽略我们可以使用命令查看一下。
[lxyhecs-165234 remot-gitcode]$ git check-ignore -v up.so[lxyhecs-165234 remot-gitcode]$ touch up.so
[lxyhecs-165234 remot-gitcode]$ git check-ignore -v up.so
.gitignore:3:*.so up.so这里就可以看到我们的 up.so 时被忽略的到 .gitignore 的第三行。 八. 配置别名 有时候我们在 git 操作的时候命令太长我们可以对其进行配置
[lxyhecs-165234 remot-gitcode]$ git log --prettyoneline --abbrev-commit我们想对这条命令进行配置一下。
[lxyhecs-165234 remot-gitcode]$ git config --global alias.缩写名 被缩写的命令上面这个就是指令我们来试验一下。
[lxyhecs-165234 remot-gitcode]$ git config --global alias.lps log --prettyoneline --abbrev-commit下面我们看一下我们的配置是否可以。
[lxyhecs-165234 remot-gitcode]$ git lps
ba0b6df .gitignore文件不忽略测试
4f7a650 强制提交忽略文件测试
e3e09e3 .gitignore 文件测试
a16ec9b update test.txt.
3e140e1 git 远端测试
00846ac linux 远程测试
5fe97e9 Initial commit当然我们配置后原指令也是可以继续生效的。
[lxyhecs-165234 remot-gitcode]$ git log --prettyoneline --abbrev-commit
ba0b6df .gitignore文件不忽略测试
4f7a650 强制提交忽略文件测试
e3e09e3 .gitignore 文件测试
a16ec9b update test.txt.
3e140e1 git 远端测试
00846ac linux 远程测试
5fe97e9 Initial commitgit 的远程操作就到这里我们下次再见~