Git远程仓库衍生产品:

1.Github(国外最大的代码仓库)
2.Gitee(码云 阿里)
3.Coding(扣钉 腾讯)
4.Codehub(华为)

5.GitLab(开源的私有远程仓库)

码云远程代码仓库操作

image-20230823161004913

image-20230823161045378

image-20230823161153742

简易的命令行入门教程:
# Git 全局设置:
git config --global user.name "NAme"
git config --global user.email "your_email"
# 创建 git 仓库:
mkdir code  # 创建目录
cd code    # 进入目录
git init        # 将目录初始化成git仓库
touch README.md     #创建一个说明文档
git add README.md    #添加暂存区
git commit -m "first commit"   #添加版本库
git remote add origin git@gitee.com:jiujiu-like99/code.git    # 将远程仓库添加到本地的配置文件中
git push -u origin "master"    ## 将本地代码,推送到远程仓库
git remote remove origin        ## 删除远程仓库配置
# 已有仓库? 
cd existing_git_repo
git remote add origin git@gitee.com:driverzeng/code.git
git push -u origin "master"

配置远程仓库的公钥

image-20230823162131403

image-20230823162300666

[root@xbs code]# git config --global user.name "酒酒"
[root@xbs code]# git config --global user.email "12685135+jiujiu-like99@user.noreply.gitee.com"
root@xbs code]# git remote add origin git@gitee.com:jiujiu-like99/code.git
[root@xbs code]# git push -u origin "master"
Counting objects: 22, done.
Compressing objects: 100% (21/21), done.
Writing objects: 100% (22/22), 2.86 KiB | 0 bytes/s, done.
Total 22 (delta 7), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To git@gitee.com:jiujiu-like99/code.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

image-20230823162716467

## 默认只推送代码
[root@xbs code]# git push -u zls master
## 如果要把已经创建的分支都推送
[root@xbs code]# git push --all
## 拉取代码(第一次拉取代码)
[root@xbs code]# git clone git@gitee.com:jiujiu-like99/code.git
## 后续同步代码   //这种只能同步master的修改记录
[root@xbs code]## git pull
#同步所以分支修改记录
[root@xbs code]# git fetch -vp
From gitee.com:driverzeng/code
= [up to date] master -> origin/master
= [up to date] ceo_branch -> origin/ceo_branch
= [up to date] mishu_branch -> origin/mishu_branch
---------------------------------------------------------------------------------------------------
git pull 是一个拉取并合并的操作,将远程仓库的更新直接合并到当前分支。
git fetch 是一个单独的获取更新的操作,不会自动合并。使用 -p 参数可以清理本地不再存在的分支。

Git高级操作

其实也就是一些别名的设置,看个人需求设置

## git 简化操作
[root@xbs code]# echo 'alias ga="git add"'>> ~/.bashrc
[root@xbs code]# echo 'alias gc="git commit -v"'>> ~/.bashrc
[root@xbs code]# echo 'alias gl="git pull"'>> ~/.bashrc
[root@xbs code]# echo 'alias gp="git push"'>> ~/.bashrc
[root@xbs code]# echo 'alias gco="git checkout"'>> ~/.bashrc
[root@xbs code]# echo 'alias gst="git status -sb"'>> ~/.bashrc
[root@xbs code]# source ~/.bashrc.
[root@xbs code]# alias glog="git log --graph --pretty=format:'%Cred%h%Creset -
%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

Git通灵之术(git stash)

有的时候项目中需要不停的切换分支,那我们已经修改的代码还不想提交,用什么方法既不用提交自己的代码成功切换分支呢?
下面就介绍下git stash的系列用法,stash在英文意思是隐藏,git stash 的作用也是隐藏未完成的代码,防止它干扰别人或者新分支的工作

1、git stash

git stash将本地没提交的内容(git commit的内容不会被缓存 但git add的内容会被缓存)进行缓存并从当前分支移除,缓存的数据结构为堆栈,先进后出。
git stash 可以多次使用,每次使用都会新加一个stash@{num},num是编号。
其中git stash与git stash save是一样的,将没有提交的内容缓存并移除,而这条缓存名称为最新一次提交的commit -m的内容,如果没有本地提交则是拉远程仓库是的commit内容。
git stash save “xxxxxxxxxxx”,加上自己缓存的注解,便于查找(不过在使用的情况来看,没啥用,因为git stash会标注最新commit的内容,在vscode中使用Git Graph插件更能直观的了解)

2、git stash list

git stash list的作用是查看stash了哪些存储,每一行的冒号前面的字符串就是标识此隐藏的id

3、git stash pop

命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}

4、git stash apply

git stash apply和git stash pop功能类似,但不会把存储从存储列表中删除(pop命令将缓存弹出来应用并且删除这条应用的缓存,而apply不会删除,你分支切换回来他还在),默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1}

5、git stash show

git stash show显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{KaTeX parse error: Expected 'EOF', got '}' at position 4: num}̲,比如第二个 git stas…num} -p ,比如第二个:git stash show stash@{1} -p

6、git stash drop stash@{$num}

git stash drop stash@{ $ num}丢弃stash@{$ num}存储,从列表中删除这个存储。如果你就缓存了一个,直接使用git stash drop即可,如果多条,需要加上后面的数量参数。
同时需要注意,如果你使用git stash pop,他会自己删除缓存,但是你使用的如果是git stash apply,需要手动删除 list 列表中的记录(即drop -p)

7、git stash clear

git stash clear也是删除命令,不过他是删除所有缓存的stash,还是要慎用!

8、git stash branch

git stash branch指定或最新缓存创建分支,but这个命令我没咋用过!

9、需要注意的是!!!

新增的文件,直接执行stash是不会被存储的,没有在git 版本控制中的文件,是不能被git stash 存起来的
stash后新增的文件并没有进入缓存,这是因为git还没有追踪这个新增的文件,所以需要进行git add [文件名]让git追踪这文件,再进行stash就可以对新文件进行操作。
git add 只是把文件加到git 版本控制里,并不等于就被stash起来了,git add和git stash 没有必然的关系,但是执行git stash 能正确存储的前提是文件必须在git 版本控制中才行

Git tag

什么是 Git tag?
在 Git中,tag是标记存储库历史记录中特定提交的一种方式。tag通常用于标记项目的特定版本,例如版本1.0或 2.0。

Git 标签有什么作用?
tag可以用于指定在仓库历史记录的某个特定点上创建的版本,这在软件开发中非常有用。如果需要在软件发布时创建tag,开发人员就可以跟踪哪个版本用于真实世界中的生产环境。在软件开发中,tag还可以用于标记里程碑或特定功能的实现。
除此之外,tag还可以用于将存储库中的提交与版本控制系统中的标记相关联。这可以用于确保特定版本的软件与存储库中的特定提交相关联。在软件开发中,这可以用于确保特定版本的软件与单独的存储库分支相关联。

创建 Git tag

可以使用消息创建带注释的 tag,也可以创建不带消息的轻量级 tag。带注释的tag包括 tag的名称、电子邮件和日期等信息,而轻量级tag仅是对特定提交的指针

#运行 git tag -a [tagname] 命令,后跟引号中的消息。例如,git tag -a v1.2 -m "Initial release" 将创建一个名为 “v1.2” 并带有 “Initial release” 消息注释的标签。
[root@gitlab code]# git tag -a 'v1.2' -m 'Initial release' 
#指定版本tag打标签
[root@gitlab code]# git tag -a v1.4 [commit 号] -m "Version 1.4"
[root@gitlab code]# git tag
v1.4

编辑已有的tag

git tag -f: 这是 Git 命令的基础部分,表示你正在操作标签并且要移动(更新)标签的位置。
例如,假设你有一个标签名为 "v1.0",但你意识到这个标签指向的提交位置不正确,你希望将它指向当前所在的提交。你可以使用以下命令:
git tag -f v1.0

列出所有tag

[root@gitlab code]# git tag
v1.4

推送tag

git push --tag