2019独角兽企业重金招聘Python工程师标准>>>

22.5/22.6 单机上使用git

22.7 建立远程仓库

22.8 克隆远程仓库

22.5/22.6 单机上使用git

git是分布式的。所谓分布式是我们不依赖网络。你再你电脑上使用git我在我电脑上使用git们都可以,不需要把我的代码更新到服务端上去 。在本地做操作就可以了

1.yum install -y git

#yum安装即可

2.mkdir /data/gitroot

#创建git 目录

3.cd /data/gitroot

4.git init //初始化仓库

5.echo -e  “123\naaa\n456\nbbb” > 1.txt //创建一个新文件

#随便写点东西

6.git add 1.txt //把1.txt添加到仓库,做标记

7.git commit -m “add new file 1.txt” //add完了必须要commit才算真正把文件提交到git仓库里

#-m""双引号里指定解释说明这个文件,可尽量写的清楚

8.再次更改1.txt

9.git status  //查看当前仓库中的状态,比如是否有改动的文件(未提交的)

10.git diff 1.txt  //可以对比1.txt本次修改了什么内容,相比较仓库里面的版本

#也就是查看变更

11.git log//查看所有提交记录。前面的字符是ID号

#版本回退

#多更改几次1.txt,然后add,commit,就可查看

12.git log --pretty=oneline//一行显示。前面的字符是ID号

#基于git log可显示的更加好看

13.git reset --hard f7c8e9//回退版本,其中后面跟的字符串是ID号简写

#撤销修改

#也可以利用ID号再回到之前的已经回退过的版本,但前提你要知道要回退的那个ID号

14.git reflog //查看所有历史版本

#这个命令可以查看所有的历史版本及ID号,包括已经删掉的

15.rm -f 1.txt//不小心删除了1.txt

git checkout -- 1.txt//恢复1.txt #注意空格

16.如果1.txt文件修改,add后但没有commit,再想回退到上一次提交的状态,可以使用git reset HEAD 1.txt来取消标记。#也就是可以将你add命令的标记去掉

再执行git checkout -- 1.txt(就恢复1.txt到修改之前的状态)

17.删除文件

echo -e "11111111111\n2222222222" > 2.txt #测试

git rm 2.txt #删除2.txt

git commit -m "rm 2.txt" #提交也就是将库里的文件删除

18. git commit -a #可以查看提示信息

实例:

[root@axinlinux-01 ~]# yum install -y git

[root@axinlinux-01 ~]# mkdir /data/gitroot

[root@axinlinux-01 ~]# cd /data/gitroot/

[root@axinlinux-01 gitroot]# git init

初始化空的 Git 版本库于 /data/gitroot/.git/

[root@axinlinux-01 gitroot]# ls -la #当前目录下会生成.git的文件。跟svn很像

总用量 0

drwxr-xr-x 3 root root 18 11月 22 16:58 .

drwxr-xr-x 12 root root 167 11月 22 16:57 ..

drwxr-xr-x 7 root root 119 11月 22 16:58 .git

[root@axinlinux-01 gitroot]# vim 1.txt #随便写点东西

[root@axinlinux-01 gitroot]# git add 1.txt #添加到仓库,做标记

[root@axinlinux-01 gitroot]# git commit -m "add 1.txt" #真正提交到仓库。但是报错了。意思是让我们告诉他我们的邮箱以及username。有提示我们怎么操作

*** Please tell me who you are.

Run

git config --global user.email "you@example.com"

git config --global user.name "Your Name"

to set your account's default identity.

Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'root@axinlinux-01.(none)')

[root@axinlinux-01 gitroot]# git config --global user.email "519321158@qq.com" #按操作输入邮箱

[root@axinlinux-01 gitroot]# git config --global user.name "axin" #按操作输入username

[root@axinlinux-01 gitroot]# git commit -m "add 1.txt" #再次提交

[master(根提交) 3369881] add 1.txt

1 file changed, 4 insertions(+)

create mode 100644 1.txt

[root@axinlinux-01 gitroot]# git status

# 位于分支 master

无文件要提交,干净的工作区

[root@axinlinux-01 gitroot]# vim 1.txt #变更一下,但是不提交

[root@axinlinux-01 gitroot]# git status #我们查看状态,就会出现会提交的。以及怎么提交

# 位于分支 master

# 尚未暂存以备提交的变更:

# (使用 "git add <file>..." 更新要提交的内容)

# (使用 "git checkout -- <file>..." 丢弃工作区的改动)

#

# 修改: 1.txt

#

修改尚未加入提交(使用 "git add" 和/或 "git commit -a")

[root@axinlinux-01 gitroot]# git diff 1.txt #查看变更

diff --git a/1.txt b/1.txt

index 06b4546..4b2d89e 100644

--- a/1.txt

+++ b/1.txt

@@ -3,4 +3,4 @@ dfnjdshfjhdkjfhsdk

njkndkjfnhkdjsnfkjdsnf

dfdfdf

735678465874368564376587435

-

+43679839885679875698859677

[root@axinlinux-01 gitroot]# git log

commit 9bd505e01e4713b386b01b55faa109465a609762

Author: axin <519321158@qq.com> #我们首次登陆设置的,可以在配置中查看到

Date: Thu Nov 22 17:20:54 2018 +0800

add 1.txt again3

下面还有其他版本,不做演示了

[root@axinlinux-01 gitroot]# cat /root/.gitconfig #是在这定义了你的全局配置

[root@axinlinux-01 gitroot]# git log --pretty=oneline #比起git log更加规范

9bd505e01e4713b386b01b55faa109465a609762 add 1.txt agent3

3655c5f4cb7f018bb36fe0d75301a223a334fe48 add 1.txt agent2

4e654b08101e8acb95ee09f84f24a6206842835f add 1.txt agent

3369881e206ece9abeab7234bef9c1192789f9b5 add 1.txt

[root@axinlinux-01 gitroot]# git reset --hard 3369881e206ece9abeab72 #后面的数字可简写几个

HEAD 现在位于 3369881 add 1.txt

[root@axinlinux-01 gitroot]# git log --pretty=oneline

3369881e206ece9abeab7234bef9c1192789f9b5 add 1.txt

[root@axinlinux-01 gitroot]# git reflog #查看所有的历史版本。可以让我们知道并来回回退各个历史版本。前面的是ID号

9bd505e HEAD@{0}: reset: moving to 9bd505e01e4713b3

3369881 HEAD@{1}: reset: moving to 3369881e206ece9abeab72

9bd505e HEAD@{2}: commit: add 1.txt agent3

3655c5f HEAD@{3}: commit: add 1.txt agent2

4e654b0 HEAD@{4}: commit: add 1.txt agent

3369881 HEAD@{5}: commit (initial): add 1.txt

[root@axinlinux-01 gitroot]# rm -rf 1.txt #假设我们不小心删掉了这个文件

[root@axinlinux-01 gitroot]# ls

[root@axinlinux-01 gitroot]# git checkout -- 1.txt #可以用git checkout -- 1.txt来恢复。注意空格

[root@axinlinux-01 gitroot]# ls #然后就有了。因为他还存在于你的版本管理库里,虽然目录里已经没有了

1.txt

[root@axinlinux-01 gitroot]# vim 1.txt

[root@axinlinux-01 gitroot]# git add 1.txt

[root@axinlinux-01 gitroot]# git reset HEAD 1.txt

重置后撤出暂存区的变更:

M 1.txt

[root@axinlinux-01 gitroot]# git checkout -- 1.txt

17.

[root@axinlinux-01 gitroot]# git rm 1.txt #使用git rm将1.txt删除

rm '1.txt'

[root@axinlinux-01 gitroot]# git commit -m "delete 1.txt" #再次提交就是讲库里的也删掉了

[master e0ad56c] delete 1.txt

1 file changed, 6 deletions(-)

delete mode 100644 1.txt

[root@axinlinux-01 gitroot]# ls #就没有了

[root@axinlinux-01 gitroot]# git checkout -- 1.txt #而且也恢复不来

error: pathspec '1.txt' did not match any file(s) known to git.

[root@axinlinux-01 gitroot]# git reflog #恢复的话使用git erflog来查看历史版本

e0ad56c HEAD@{0}: commit: delete 1.txt

1a3d7c8 HEAD@{1}: commit: add 1.txt agint

9bd505e HEAD@{2}: reset: moving to 9bd505e01e4713b3

3369881 HEAD@{3}: reset: moving to 3369881e206ece9abeab72

9bd505e HEAD@{4}: commit: add 1.txt agent3

3655c5f HEAD@{5}: commit: add 1.txt agent2

4e654b0 HEAD@{6}: commit: add 1.txt agent

3369881 HEAD@{7}: commit (initial): add 1.txt

[root@axinlinux-01 gitroot]# git reset --hard 1a3d7c8 #然后在使用git reset --hard ID号来恢复

HEAD 现在位于 1a3d7c8 add 1.txt agint

[root@axinlinux-01 gitroot]# ls

1.txt 2.txt

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

22.7 建立远程仓库

1.首先到 https://github.com 注册一个账号,创建自己的git,点repositories 再点new

2.名字自定义,比如叫studygit 选择public 点 create repository

3.添加key:右上角点自己头像,选择settings,左侧选择SSH and GPG keys

4.左侧点New SSH key,把linux机器上的~/.ssh/id_rsa.pub内容粘贴到这里

5.把本地仓库推送到远程仓库 git remote add origin git@github.com:aminglinux/studygit.git //这一步是在远程创建一个新的仓库studygit,名字尽量和本地的一致

6.git push -u origin master //然后把本地的studygit仓库推送到远程的studygit

下一次再推送,就可以直接 git push

实例:

进入github网站,创建账号

输入username为axin-linux,邮箱为519321158@qq.com,密码为wx15098751520

再做三次傻逼的游戏,就可以点击sign in登录了

以上,就会看到这个界面。想有一些简单的用法或说明啥的,一会在linux上还会用到这些提示的用法

此时还需要加一个秘钥。目的是为了认证,你得告诉他我是一个合法的用户

以上,公钥的方法为,linux上:

[root@axinlinux-01 gitroot]# ssh-keygen #ssh-keygen命令生成密钥对

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa): #回车回车回车即可

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_rsa. #这个是私钥,在这里路径里

Your public key has been saved in /root/.ssh/id_rsa.pub. #带pub的为公钥,在这个路径里

The key fingerprint is:

SHA256:upAdKxtWB6rI5MaSnlrXbuKz8WQfXohi+NwqQyjAZqQ root@axinlinux-01

The key's randomart image is:

+---[RSA 2048]----+

| |

| . |

|+ . |

|E+ . . |

|+o . o S |

|Bo.o = * . |

|=*+ @ O o . |

|+.+*o&.+ o |

|oo +B*= o |

+----[SHA256]-----+

[root@axinlinux-01 gitroot]# cd #因为公钥在root目录下,直接cd出来

[root@axinlinux-01 ~]# cat .ssh/id_rsa.pub #cat 这个公钥文件就可以了

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXXjoeyXRbpHSwxJa8kvnGev9HV7xqHfQxxVL711ypsMMaKGlpcRVGhRWNkfzS37W0jAfnVZJX3/nSD2BEcrmqmPAxRG48+OZMBhEqh6g6KeCe0JgOA0azm/gpujrrcRNLxbVsT6dTGiRzxfvAG2OPqwOCWN/a3QMPXpdd2IDVTSAw0GMDBYUpr+tHu1DzeVogt5wvdkcBAtb9+caDAAWM0uZLLlG/mZ+Zm2FqX7j8J9LPpy2LIeJF0OBbzeFHMHT1zdUkpLBL5FQSmQ2hrwweT3iqcBXB/A7MNQNan7SFAW4vj7LiUWuxA301RBHuY8e9sS74nLb9lJZds1yle5Hz root@axinlinux-01

以上,会让你在输入一次密码。就会出现这个画面。

接下来还要在客户端上(linux)上,新建一个仓库,然后在这个仓库写一些东西,再把这些东西推送到远程上去

[root@axinlinux-01 ~]# cd /tmp/ #就在tmp下创建这个仓库吧

[root@axinlinux-01 tmp]# mkdir apelearn #为了与远程端保持一致,最好也写成一样的名称

[root@axinlinux-01 tmp]# cd apelearn/ #cd进去

[root@axinlinux-01 apelearn]#

到这,有点小问题。我又重新搞了一次

[root@axinlinux-01 tmp]# rm -rf apelearn/

[root@axinlinux-01 tmp]# mkdir aming_linux

[root@axinlinux-01 tmp]# cd aming_linux/

[root@axinlinux-01 aming_linux]# echo "# aming_linux" >> README.md #从这一步开始都是复制的建远程库(web上)之后提示的操作

[root@axinlinux-01 aming_linux]# git init

初始化空的 Git 版本库于 /tmp/aming_linux/.git/

[root@axinlinux-01 aming_linux]# git add README.md

[root@axinlinux-01 aming_linux]# git commit -m "first commit"

[master(根提交) 25ca739] first commit

1 file changed, 1 insertion(+)

create mode 100644 README.md

[root@axinlinux-01 aming_linux]# git remote add origin https://github.com/axin-linux/aming_linux.git

[root@axinlinux-01 aming_linux]# git push -u origin master

Username for 'https://github.com': axin-linux #初次登录会让输入用户名和密码,就是一开始创建的用户名和密码

Password for 'https://axin-linux@github.com':

Counting objects: 3, done.

Writing objects: 100% (3/3), 216 bytes | 0 bytes/s, done.

Total 3 (delta 0), reused 0 (delta 0)

remote:

remote: Create a pull request for 'master' on GitHub by visiting:

remote: https://github.com/axin-linux/aming_linux/pull/new/master

remote:

To https://github.com/axin-linux/aming_linux.git

* [new branch] master -> master

分支 master 设置为跟踪来自 origin 的远程分支 master。

以上,就把本地的文件推送到了远程。那怎么看远程有没有呢?回到web上,刷新一下界面就能看到我们按照提示建的README了

[root@axinlinux-01 aming_linux]# vim 2.txt #我们再来测试一下。创建个2.txt

[root@axinlinux-01 aming_linux]# git add 2.txt

[root@axinlinux-01 aming_linux]# git commit -m "add 2.txt"

[master 27e1249] add 2.txt

1 file changed, 1 insertion(+)

create mode 100644 2.txt

[root@axinlinux-01 aming_linux]# git push #记得要推一下。才能到远程

再回到web上刷新一下就有了

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

22.8 克隆远程仓库

github上有很多开源的项目。实际工作,使用最多的就是我们怎么把远程上这些项目搞到本地上来

1.cd /home

2.git clone git@github.com:aminglinux/lanmp.git

#使用git clone后面跟克隆的地址

它提示,会在当前目录下初始化一个仓库,并创建一个.git的目录,如下

Initialized empty Git repository in /home/lanmp/.

3.git/完成后,ls可以看到一个lanmp的目录

4.cd lanmp

5.vi lanmp.sh 编辑一下文件,然后提交

6.git add lanmp.sh

7.git commit -m "sdlfasdf"

8.然后再推送到远程服务端

git push

9.如果我们在远程里(web上)足了一些文件的更改,要拉倒本地:

git pull

实例:

[root@axinlinux-01 aming_linux]# git clone git@github.com:aminglinux/lanmp.git

#git clone克隆的地址就是上图中标出的地址

正克隆到 'lanmp'...

Warning: Permanently added the RSA host key for IP address '13.229.188.59' to the list of known hosts.

remote: Enumerating objects: 32, done.

remote: Total 32 (delta 0), reused 0 (delta 0), pack-reused 32

接收对象中: 100% (32/32), 5.99 KiB | 0 bytes/s, done.

处理 delta 中: 100% (6/6), done.

[root@axinlinux-01 aming_linux]# cd lanmp/

[root@axinlinux-01 lanmp]# ls

lanmp.sh README.md

转载于:https://my.oschina.net/u/3866149/blog/3030838

86.git使用 建立和克隆远程仓库相关推荐

  1. Git HTTP方式克隆远程仓库到本地

    操作步骤 Git 通过HTTP方式克隆远程仓库到本地总共需要三步: 登录我们的github 复制我们的github 项目的https 地址. 在我们的本地磁盘下创建文件夹用来保存我们的远程git项目. ...

  2. git clone 多个_git远程仓库

    备注: 知识点 远程仓库 本地和远程仓库 github远程仓库添加密钥 添加远程仓库 SSH警告 从GitHub远程仓库克隆 参考 备注: 本文参考于廖雪峰老师的博客Git教程.依照其博客进行学习和记 ...

  3. Git学习(二)远程仓库建立与克隆

    Git远程仓库建立与克隆 十五.在github上创建自己的远程git仓库 1.创建github账户 2.创建SSH Key 创建SSH Key.在用户主目录下,看看有没有.ssh目录,如果有,再看看这 ...

  4. git安装、使用、建立github远程仓库、克隆远程仓库

    文章目录 安装git 单机上使用git 建立GitHub远程仓库 克隆GitHub远程仓库 安装git [root@linux ~]# yum -y install git 单机上使用git 创建仓库 ...

  5. GIt——怎样克隆远程仓库到本地(敲详细)

      克隆远程仓库,说得容易理解的话就是下载网上的东西到本地.步骤还是比较简单,之前我尝试过用SourceTree,我去那是真的麻烦,用可视化软件还不如自己敲代码,反正代码也不难,就一句话而已! 步骤 ...

  6. Git仓库建立与连接远程仓库

    Git仓库建立与连接远程仓库 1.前期准备 (1)需要软件:git-bash (2)创建一个文件夹或选择需要建立git仓库的文件夹(如果本地文件夹中,有文件,建议复制出去一个备份,防止自己操作失误,导 ...

  7. Android基础新手教程——1.5.2 Git之使用GitHub搭建远程仓库

    Android基础新手教程--1.5.2 Git之使用GitHub搭建远程仓库 标签(空格分隔): Android基础新手教程 本节引言: 在上一节中.我们学习了怎样使用Git.构建我们的本地仓库.轻 ...

  8. Android Studio(13)--- Git之使用GitHub搭建远程仓库

    Git之使用GitHub搭建远程仓库 在上一节中,我们学习了如何使用Git,构建我们的本地仓库,轻松的实现了版本控制以及代码还原,修改日志查看等:读者肯定不满足与本地是吧,假如是多个人一起来开发一个程 ...

  9. Android 应用开发(30)---Git之使用GitHub搭建远程仓库

    Git之使用GitHub搭建远程仓库 本节引言: 在上一节中,我们学习了如何使用Git,构建我们的本地仓库,轻松的实现了版本控制以及代码还原,修改日志查看等:读者肯定不满足与本地是吧,假如是多个人一起 ...

最新文章

  1. python实现ssh登录send_Python实现ssh批量登录并执行命令
  2. 2020\Simulation_2\2.最多边数
  3. 元素随着滚动条滚动而滚动,但是到浏览器窗口顶部的距离是固定的功能代码...
  4. linux block的含义,Block Prefetching含义
  5. Oracle plsqlI 练习 传值
  6. jinja Import
  7. 域环境安装企业从属CA两种方法
  8. 免费且高质量的知识有的是,你只是不知道怎么找到它们!
  9. jmeter 入门到精通
  10. 软考之项目网络图(活动图)
  11. Java进阶架构实战——Redis在京东到家的订单中的使用
  12. 川普上台,VR游戏开发者也来恶搞蹭热度
  13. 因为没有使用有效的安全证书进行签名,该内容已被屏蔽。
  14. 【Python】三维画图——matplotlib以及np.mgrid的使用
  15. 拼多多面试——机器学习岗位面经
  16. docker启动容器发生Error response from daemon故障
  17. 【题解】arc101 C - Ribbons on Tree
  18. 保险Insurance
  19. MATLAB-实现太阳、地球、月亮三者之间运转关系的模拟
  20. (PKCS1) RSA 公私钥 pem 文件 提取 公私钥 e d 和 模数 n

热门文章

  1. Nginx-08:Nginx配置高可用
  2. 面试关于ISO七层模型你应该知道的东西
  3. UART0串口编程(五):串口编程(UART0)之UC/OS(一)UC/OS下的串口发送任务编程
  4. ThreadLocal原理与使用
  5. 原生Android之(6.0及以上)权限申请
  6. 《快学Scala》第二章 控制结构和函数
  7. Linux系统的CPU使用率和Load
  8. 在iOS 中使用sleep方法 让程序暂停几秒钟
  9. [导入]关于DataGrid等控件中的自动编号
  10. C 语言获取系统时间