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上面添加刚刚生成的公钥

相关推荐
blessing。。17 分钟前
I2C学习
linux·单片机·嵌入式硬件·嵌入式
2202_7544215432 分钟前
生成MPSOC以及ZYNQ的启动文件BOOT.BIN的小软件
java·linux·开发语言
努力的悟空1 小时前
国土变更调查拓扑错误自动化修复工具的研究
运维·自动化
运维&陈同学1 小时前
【zookeeper03】消息队列与微服务之zookeeper集群部署
linux·微服务·zookeeper·云原生·消息队列·云计算·java-zookeeper
周末不下雨2 小时前
win11+ubuntu22.04双系统 | 联想 24 y7000p | ubuntu 22.04 | 把ubuntu系统装到1T的移动固态硬盘上!!!
linux·运维·ubuntu
哎呦喂-ll3 小时前
Linux进阶:环境变量
linux
耗同学一米八3 小时前
2024 年河北省职业院校技能大赛网络建设与运维赛项样题四
运维·网络
Rverdoser3 小时前
Linux环境开启MongoDB的安全认证
linux·安全·mongodb
PigeonGuan3 小时前
【jupyter】linux服务器怎么使用jupyter
linux·ide·jupyter