03、linux下Git的命令操作

git的命令操作

1、git安装

[root@pokes04 ~]# yum -y install git
[root@pokes04 ~]# git --version
git version 1.8.3.1

2、公钥的创建

创建公钥

[root@pokes04 ~]# ssh-keygen -t rsa  -C "pokes@163.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
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.
The key fingerprint is:
SHA256:hSs1jbQhKbbIkkqQlNZ6s2AAg6R/A+qhIsxggsu0Usc pokes@163.com
The key's randomart image is:
+---[RSA 2048]----+
|B+o   ..o        |
|*+ .o .o *       |
|=ooo o  * o      |
|+Bo=.  . +       |
|O== E . S        |
|%oo+ . .         |
|**               |
|+                |
|                 |
+----[SHA256]-----+
[root@pokes04 ~]# 
[root@pokes04 ~]# 
[root@pokes04 ~]# 
[root@pokes04 ~]# cd ~/.ssh/
[root@pokes04 .ssh]# ll
总用量 8
-rw------- 1 root root 1679 913 12:06 id_rsa
-rw-r--r-- 1 root root  395 913 12:06 id_rsa.pub

查看公钥

[root@pokes04 .ssh]# cat id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+xtbsmoFZDJGU7sY2NCMchl0jHC3oJ7VaqHLDvveIG6hkt+0sYoDcL/TdZ1wmpXlsRJWvDC6W/95t9KWbXnc10wHqFRd2iVZ/Se91knJEtTAhOFOFfOrNzADdk7QL2fyIuj0P33uf6kMxDb5dloSkJxR5F2SYyuTAQNRz6IArzUK3LfK5zot5Xq+JSec5xhzpNcgbp4QAhu61NdvIJgQQAFastnll1ljwkmJIyoV6fnzYyY47tUPSrpE2yIINoCHoV3RZ2kF0k1Kfkyov4V98UTdB5HC9CQjFUal6LvyqHK2yiXoRHhEY8FoGSVaRMzGQP02yZ6qLN4XJwZaf3HDj pokes@163.com

复制上面的加到github或者gitee的ssh里面.国内建议使用gitee

尝试连接github

[root@pokes04 .ssh]# ssh git@github.com
The authenticity of host 'github.com (52.74.223.119)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
RSA key fingerprint is MD5:16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes  <----这里选择yes
Warning: Permanently added 'github.com,52.74.223.119' (RSA) to the list of known hosts.
PTY allocation request failed on channel 0
Hi spokess! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.

3、创建本地版本库

[root@pokes04]mkdir -p /gitdata/mysql
[root@pokes04]cd /gitdata/mysql

[root@pokes04 mysql]# git init
初始化空的 Git 版本库于 /gitdata/.git/

[root@pokes04 mysql]# git config --global user.email "pokes@163.com"
[root@pokes04 mysql]# git config --global user.name "Yusa"

4、绑定远程项目分支

我之前新建的是gitdata这个目录是本地所有项目的总目录,mysql只是一个分支,后续我还有项目就会新建别的目录,例如/gitdata/docker 因此你必须进入到这个目录中

注意:因为git在国外,这里以国内的gitee为例,其实操作都是一样的

[root@pokes04 mysql]# cd /gitdata/mysql
[root@pokes04 mysql]# git remote add origin https://gitee.com/spokes/mysql.git

绑定之后无论下载和上传都会到这个目录。

5、将项目分支拉去到本地

将https://gitee.com/spokes/mysql.git 这个页面的所有数据都拉到本地。如下就是拉取的全过程:

[root@pokes04 mysql]# git pull origin master
remote: Enumerating objects: 23, done.
remote: Counting objects: 100% (23/23), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 23 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (23/23), done.
来自 https://gitee.com/spokes/mysql
 * branch            master     -> FETCH_HEAD
[root@pokes04 mysql]# ll
总用量 75504
-rw-r--r-- 1 root root   416846 913 13:55 hanligang_data.sql
drwxr-xr-x 2 root root      320 913 13:55 MySQL-5.5.62-1.el6
drwxr-xr-x 2 root root      320 913 13:55 MySQL-5.5.62-1.el7
-rw-r--r-- 1 root root 37441536 913 13:55 mysql-5.5.62-win32.msi
-rw-r--r-- 1 root root 39456768 913 13:55 mysql-5.5.62-winx64.msi
[root@pokes04 mysql]# 

拉去到本地之后,我们就可以进行修改。修改完之后必须先提交到本地库。

6、提交到本地库

git add . -A
git commit -m "第一次提交"

说明:直接git add .就可以了。但是在这里因为我的操作中,我把过期的数据删除了,所以在提交的时候它提示我没有指定-A (--all)' 或 '--ignore-removal

[root@pokes04 docker]# git add .
warning: 您在运行 'git add' 时没有指定 '-A (--all)''--ignore-removal',
针对其中本地移除路径的行为将在 Git 2.0 版本库发生变化。
像本地工作区移除的路径 'docker-compose/docker-compose-Linux-x86_64'
在此版本的 Git 中被忽略。

* 'git add --ignore-removal <pathspec>',是当前版本的默认操作,
  忽略您本地工作区中移除的文件。

* 'git add --all <pathspec>' 将让您同时对删除操作进行记录。

运行 'git status' 来检查您本地工作区中移除的路径。

[root@pokes04 docker]# git add . -A
命令功能缩写
git add .他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。
git add -u他仅监控已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。git add --update的缩写
git add -A是上面两个功能的合集git add --all的缩写

7、本地同步到远程服务器

修改好之后我们就可以把本地库同步到远程服务器上,在这里需要注意几点:

  • 必须创建用户和邮箱加以识别;
  • 必须先绑定远程项目库的连接。
[root@pokes04 docker]# git push origin master
Username for 'https://gitee.com': pokes@163.com
Password for 'https://pokes@163.com@gitee.com': 
Counting objects: 3, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 459 bytes | 0 bytes/s, done.
Total 2 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-5.0]
To https://gitee.com/spokes/docker.git
   97c45b7..981bd33  master -> master

8、强制拉取并覆盖本地代码

有时候我们在本地修改文件,由于误操作修改错了。需要将远程服务器上的数据覆盖本地数据。这样的操作数据丢失的风险比较大,必须满足以下几个条件:

  • 操作前,请先将你的数据备份一份;
  • 操作前必须先绑定分支。

这种方法使用时需慎用,以免覆盖数据,导致数据丢失。

git fetch --all
git reset --hard origin/master
git pull
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值