git 使用

1. 下载git

yum -y install git

2. 配置用户,邮箱

git config --global user.name 'tom' 
git config --global user.email '328294199@qq.com'
git config --global color.ui true
git config --global --list

3. 初始化代码目录

mkdir -p /app/src/tom-app
cd /app/src/tom-app
git init
ll .git/

4. git工作空间

工作区:工作目录就是我们执行命令git init时所在的地方
暂存区:暂存区和本地仓库都是在.git目录,因为它们只是用来存数据的
本地仓库:暂存区和本地仓库都是在.git目录,因为它们只是用来存数据的
远程仓库:远程仓库在中心服务器,也就是我们做好工作之后推送到远程仓库

5. git常用命令

|-------------------------------|-----------------------------------------------------------------|
| 命令 | 含义 |
| git init | 初始化本地仓库目录 |
| git config --global | 邮箱,用户名,颜色 |
| git add | 提交数据到缓冲区(暂存区) git add . (所有文件) 或 git add 文件 |
| git commit | 把暂存区的数据提交到本地仓库 git commit -m "标记/说明" |
| git status | 显示工作空间的状态 |
| git reset | 回滚 |
| git reset --soft cid(版本号) | 把指定的版本数据内容下载到暂存区 |
| git reset HEAD | 暂存区 -->工作空间(被修改的状态) |
| git checkout | 文件下载到工作空间并可以使用 git checkout . 或 git checkout 文件 |
| git reset --mix 版本号 | |
| git reset --hard 版本号 | 把本地仓库指定版本信息数据下载到工作目录中 |
| git branch | 查看分支 |
| git branch name | 创建分支 |
| git branch -d name | 删除分支 |
| git checkout 分支名字 | 切换分支 |
| git merge 分支名字 | 合并(吸收)分支(把指定的分支合并到当前分支中) |
| git checkout -b name | 创建分支并切换到这个分支 |
| git pull origin 分支名字 | 用于从远程仓库获取最新的提交,并将其合并到当前分支中, 它相当于执行了 git fetch 后紧接着执行了 git merge |
| git fetch origin 分支名字 | 用于从远程仓库获取最新的提交,但不会自动合并或更新本地分支 |
| git push -u origin 分支名字 | 将本地仓库代码推送至远程分支 |
| git clone [https://|git] | 用于初始化本地仓库,只需要执行一次。它会在本地创建一个新的目录,并将远程仓库的整个代码库复制到该目录中 |
| git tag -a v1.0 -m "new v1.0" | 给当前版本打个标签,用于发版本 |
| git push -u origin --tags | 将标签推送至远程仓库 |
| | |

#书写代码
]# echo 进度1% > index.html

#查看状态
]# git status
# On branch master
# Initial commit
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#	index.html
nothing added to commit but untracked files present (use "git add" to track)

#把工作区中未被跟踪的文件加到暂存区进行跟踪
git add .

#再次查看状态,文件已加入到暂存区
[root@gitlab tom-app]# git status
# On branch master
# Initial commit
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#	new file:   index.html

#把暂存区的文件提交到本地仓库
[root@gitlab tom-app]# git commit -m "项目v1"
[master (root-commit) 92bbd3f] 项目v1
 1 file changed, 1 insertion(+)
 create mode 100644 index.html

#再次查看状态,工作区和暂存区都没有文件要提交了
[root@gitlab tom-app]# git status
# On branch master
nothing to commit, working directory clean

#不小心把代码删除了,可以通过git checkout .把最新代码从本地仓库拉取下来
[root@gitlab tom-app]# rm -rf index.html 
[root@gitlab tom-app]# ll
total 0
[root@gitlab tom-app]# git status
# On branch master
# Changes not staged for commit:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#	deleted:    index.html
#
no changes added to commit (use "git add" and/or "git commit -a")
[root@gitlab tom-app]# git checkout .
[root@gitlab tom-app]# ll
total 4
-rw-r--r-- 1 root root 9 Jul 10 11:38 index.html
[root@gitlab tom-app]# git status
# On branch master
nothing to commit, working directory clean

6. 分支

#当前共一个分支,目前位于master分支
[root@gitlab tom-app]# git branch
* master

#从当前分支位置,创建要给新分支shopping
[root@gitlab tom-app]# git branch shopping

#当前仓库共2个分支,代码目前位于master分支
[root@gitlab tom-app]# git branch
* master
  shopping

#切换代码到shopping分支
[root@gitlab tom-app]# git checkout shopping 
Switched to branch 'shopping'

#当前仓库共2个分支,代码目前位于shopping分支
[root@gitlab tom-app]# git branch
  master
* shopping

#shopping分支新增代码并提交---------------------------------------------------
[root@gitlab tom-app]# vim shopping.html
[root@gitlab tom-app]# git status
# On branch shopping
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#	shopping.html
nothing added to commit but untracked files present (use "git add" to track)
[root@gitlab tom-app]# git add .
[root@gitlab tom-app]# git commit -m "shopping v1"
[shopping 94cead0] shopping v1
 1 file changed, 1 insertion(+)
 create mode 100644 shopping.html
#----------------------------------------------------------------------

#把shoping分支的代码合并到master分支--------------------------------------
#先确保当前分支在master分支
[root@gitlab tom-app]# git checkout master 
Switched to branch 'master'
[root@gitlab tom-app]# ll
-rw-r--r-- 1 root root 9 Jul 10 12:08 index.html
[root@gitlab tom-app]# git merge shopping 
Updating 65d8fab..94cead0
Fast-forward
 shopping.html | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 shopping.html
[root@gitlab tom-app]# ll
-rw-r--r-- 1 root root 9 Jul 10 12:08 index.html
-rw-r--r-- 1 root root 9 Jul 10 12:26 shopping.html
#----------------------------------------------------------------------

7. 远程仓库(gitee)

7.1. 方式一:https方式(密码认证方式)

#仓库为https(密码认证方式),每次push的时候,都要输入用户名密码
]
]# git push -u origin "master"
Username for 'https://gitee.com': 13202283227
Password for 'https://13202283227@gitee.com': 
Counting objects: 12, done.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (12/12), 1.04 KiB | 0 bytes/s, done.
Total 12 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/a-little-phoenix/tomapp.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

7.2. 方式二:为了提交代码方便,重新设置远程仓库地址为ssh的方式(密钥认证方式)

git remote set-url origin git@gitee.com:a-little-phoenix/tomapp.git

#本地生成密钥对
[root@gitlab tom-app]# 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.
The key fingerprint is:
SHA256:9iVmjImoq30tv/FAixhelh9mBp/zAVWM8KvW4UF8Cy0 root@gitlab
The key's randomart image is:
+---[RSA 2048]----+
|      ...+.      |
|       +...      |
|    . . E o      |
|     = = O .     |
|  . = @ S * .    |
| . * B X B o     |
|  + ..B + .      |
| . .o..+         |
|..o. oo..        |
+----[SHA256]-----+
[root@gitlab tom-app]# ll /root/.ssh/
total 12
-rw------- 1 root root 1679 Jul 10 13:45 id_rsa
-rw-r--r-- 1 root root  393 Jul 10 13:45 id_rsa.pub

gitee上面添加刚刚生成的公钥

相关推荐
爱编程的小金毛球球4 分钟前
-bash: /home/xxx/anaconda3/bin/conda: No such file or directory
linux·conda·bash
Shepherd06191 小时前
【Jenkins实战】Windows安装服务启动失败
运维·jenkins
Biomamba生信基地2 小时前
Linux也有百度云喔~
linux·运维·服务器·百度云
new_abc2 小时前
Ubuntu 22.04 ftp搭建
linux·运维·ubuntu
flying robot2 小时前
RPM的使用
linux
鹿鸣天涯2 小时前
‌华为交换机在Spine-Leaf架构中的使用场景
运维·服务器·网络
小白也有IT梦3 小时前
域名绑定服务器小白教程
运维·nginx
有梦想的咕噜3 小时前
Secure Shell(SSH) 是一种网络协议
运维·网络协议·ssh
dntktop3 小时前
免费,WPS Office教育考试专用版
运维