ubuntu下git配置和基本使用
1.git简介
??Git 是一个分布式的文件托管系统,当然这里的文件主要是源代码(文本),也可以包含其他非文本的二进制数据。由于 git 主要用于存储代码(.java .c .cpp .h .jar .class…) 中,所以以后我们就把用代码来表示文件了。 ??git 包含了完善的客户端和服务端,客户端和服务端之间通过某种安全通信 协议(HTTPS 或者 SSH)进行文件的上传和下载。
2.在码云上创建Git仓库
?1.创建账号,登录gitee ?2.创建仓库 ?3.初始化仓库 ?创建成功。
3.ubuntu下git
sudo apt-get install git #安装git
git config --global user.name "[name]" #设置全局用户名字
git config --global user.email "[email address]" #设置邮箱
git config --list #查看配置信息
3.1 本地生成公钥,使用SSH协议登录
??Gitee 提供了基于SSH协议的Git服务,在使用SSH协议访问仓库之前,需要先配置好账户/仓库的SSH公钥。
[wbyq@wbyq ~]$ ssh-keygen -t rsa -C "it-a-shui@872561012@qq.com"
-t 为指定加密方式rsa
-C 指定生成密钥sshkey名称,可以随意填写
[wbyq@wbyq ~]$ ls /home/wbyq/.ssh/ #生成密钥文件,
id_rsa id_rsa.pub known_hosts
3.2 配置gitee服务器端
3.3 测试是否成功
[wbyq@wbyq ~]$ ssh -T git@gitee.com
Hi it_阿水! You've successfully authenticated, but GITEE.COM does not provide shell access.
??添加成功后,就可以使用SSH协议对仓库进行操作了
3.4 ubuntu下git基本使用
3.4.1 创建本地仓库,提交代码
??(1)首先在gitee服务器上创建仓库。 ??(2)初始化本地仓库。将本地仓库与远程仓库关联。
[wbyq@wbyq work]$ git init #初始化本地仓库
[wbyq@wbyq work]$ git remote add origin git@gitee.com:it-a-shui/git_test.git #关联远程仓库
??origin 是给我们当前项目的远程仓库起的名字,可以随意取,一般当只有一个远程仓库时就取名为origin。 ??(3)查看本地当前项目远程仓库有哪些。
[wbyq@wbyq work]$ git remote -v
origin git@gitee.com:it-a-shui/git_test.git (fetch)
origin git@gitee.com:it-a-shui/git_test.git (push)
??(4)提交本地仓库到远程仓库
[wbyq@wbyq work]$ touch test.c #在本地仓库创建一个test.c
[wbyq@wbyq work]$ git commit -m "ubuntu下git使用测试" #编写提交说明
[wbyq@wbyq work]$ git push origin master #提交分支
??如果上传不成功,提示无法合并,可以强制上传:(一般不建议使用) ??git push -u origin +master #将本地仓库分支 origin 分支的所有内容推送给 master 仓库 ??注意:采用git init创建本地仓库后,若不克隆远程仓库内容,直接提交则会将原来远程仓库中内容删除。 ??(5)提交本地仓库所有文件到远程仓库。
[wbyq@wbyq work]$ cat test.c #在test.c中添加以下内容
#include <stdio.h>
int main()
{
printf("欢迎使用git代码管理平台\n");
}
[wbyq@wbyq work]$ git add -A #本地所有文件
[wbyq@wbyq work]$ git commit -m "第二次提交测试" #提交说明
[wbyq@wbyq work]$ git push origin master #提交分支
3.4.2 克隆远程仓库内容
??git clone <远程仓库地址>
[wbyq@wbyq work]$ git clone git@gitee.com:it-a-shui/git_test.git
正克隆到 'git_test'...
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 29 (delta 2), reused 0 (delta 0), pack-reused 19
接收对象中: 100% (29/29), 22.38 KiB | 402.00 KiB/s, 完成.
处理 delta 中: 100% (4/4), 完成.
[wbyq@wbyq work]$ ls
git_test #克隆生成的文件
[wbyq@wbyq git_test]$ cat test.c
#include <stdio.h>
int main()
{
printf("欢迎使用git代码管理平台\n");
printf("克隆远程仓库代码测试\n");
}
[wbyq@wbyq git_test]$ git commit -m "Ubuntu下克隆远程仓库代码测试" #提交说明
[wbyq@wbyq git_test]$ git push origin master #提交分支
??注意:克隆远程仓库时会在本地生成仓库,不需要通过git init创建,需要修改和提交只需要进到该仓库目录下即可。
4 查看提交日志信息
[wbyq@wbyq git_test]$ git log
commit 970e00cd9669a593204f977606a48feb7b (HEAD -> master, origin/master, origin/HEAD)
Author: wbyq <872561012@qq.com>
Date: Thu Oct 28 18:04:20 2021 +0800
Ubuntu下克隆远程仓库代码测试
commit 19db83b611e678e0b3c577320cd908a1e9c
Author: wbyq <872561012@qq.com>
Date: Thu Oct 28 17:13:25 2021 +0800
第二次提交测试
commit f85d4db27fc9a9aafc56f1e6a26eee0f8
Author: wbyq <872561012@qq.com>
Date: Thu Oct 28 15:15:05 2021 +0800
添加test.c
[wbyq@wbyq git_test]$ git reflog
f81b615 (HEAD -> master) HEAD@{0}: reset: moving to f81b615d4db27fc9a9aafc56f1e9486a26eee0f8
970e00c (origin/master, origin/HEAD) HEAD@{1}: reset: moving to 970e00c
f81b615 (HEAD -> master) HEAD@{2}: reset: moving to f81b615d4db27fc9a9aafc56f1e9486a26eee0f8
??git log 命令可以显示所有提交过的版本信息 ??git reflog 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作) ??例如执行 git reset --hard HEAD~1,退回到上一个版本; ??用git log则是看不出来被删除的commitid,用 git reflog则可以看到被删除的commitid,我们就可以买后悔药,恢复到被删除的那个版本。
5 版本回退
??git reset --hard [版本号]
[wbyq@wbyq git_test]$ git reset --hard f81b615d4db9a9aafc56f1e9486a26eee0f8
HEAD 现在位于 f81b615 添加test.c
[wbyq@wbyq git_test]$ git reset --hard HEAD~1 #回退到上一个版本
HEAD 现在位于 c9f99ab 公钥测试
|