git远程仓库衍生产品
1.Github(国外最大的代码仓库)
2.Gitee(码云 阿里)
3.Coding(扣钉 腾讯)
4.Codehub(华为)
私有代码仓库
5.GitLab(开源的私有远程仓库)
码云远程代码仓库操作
创建仓库
**简易的命令行入门教程: **
# Git 全局设置:
git config --global user.name "王小葵"
git config --global user.email "@user.noreply.gitee.com"
# 没有git仓库时,创建 git 仓库:
## 创建目录
mkdir code
## 进入目录
cd code
## 将目录初始化成git仓库
git init .
--------------------------
touch README.md # 教程文档
git add README.md
git commit -m "first commit"
--------------------------
## 将远程仓库添加到本地的配置文件中
git remote add origin git@gitee.com:aaakui/test_code.git
## 删除远程仓库配置
git remote remove origin
## 将本地代码,推送到远程仓库
git push -u origin "master"
[root@db01 code]# git push -u origin master
# 已有仓库?
cd existing_git_repo
git remote add origin git@gitee.com:aaakui/test_code.git
git push -u origin "master"
# 加到本地仓库
[root@web02 test_code]# git remote add origin git@gitee.com:aaakui/test_code.git
[root@web02 test_code]# cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = git@gitee.com:aaakui/test_code.git
fetch = +refs/heads/*:refs/remotes/origin/*
配置远程仓库的公钥
# 没有公钥可以先生成
ssh-keygen
# 查看公钥,复制粘贴到码云
[root@web02 test_code]# cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/yPyN3FE8tkRYr8lGY2HO1fepIf6F8viJKGGZMlwJiJxrN+m7NVH5t3eYROIzjLBrnmN6rBMYDFyBXTFrTSpF24iJAiXMw/Ew4pB2icdHjvXz455YECc3zgTLL7vKQBqHwFqkvd3nNfcxiAZqW3WMr1wc7YIy44hs9+QNQoZ0WYYJTQTWkz+MpDbx+aPItaGgxxjWgqPeOfloHa4M/+wOQeFOQuPbOARqFgaXeLCOH/XoNT8z+1I2N2Rg4V1Vw+2E4FUzS2cftVk+fkKRRkWt2QaZIHYj1TuGak1MvgYyNHJHYtjX0E+q1abSu5nvPyS5O0+h98lragUTkHVGBMDR root@web02
# 编辑好代码后要先添加,然后提交,之后才能推动码云上
-#添加
[root@web02 test_code]# git add .
-#提交
[root@web02 test_code]# git commit -m '第一次提交'
[master (root-commit) c0cf76e] 第一次提交
3 files changed, 50 insertions(+)
create mode 100644 index.html
create mode 100644 main.js
create mode 100644 style.css
-#推
[root@web02 test_code]# git push -u origin master
Counting objects: 5, done.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 1.25 KiB | 0 bytes/s, done.
Total 5 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To git@gitee.com:aaakui/test_code.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
# 如果要把已经创建的分支都推送
[root@web02 test_code]# git push --all
Total 0 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To git@gitee.com:aaakui/test_code.git
* [new branch] ceo_branch -> ceo_branch
* [new branch] ms_branch -> ms_branch
# 拉取代码(第一次拉取代码时,必须要执行这个,之后不要)
-#从码云上拉取代码到opt目录下来修改
[root@web02 opt]# git clone git@gitee.com:aaakui/test_code.git
Cloning into 'test_code'...
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 5 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (5/5), done.
-# 改完代码要提交
[root@web02 test_code]# git add .
[root@web02 test_code]# git commit -m '第二次提交'
[master 175ddff] 第二次提交
1 file changed, 3 deletions(-)
-#提交完推到码云上
git push(可以不指定用户)
[root@web02 test_code]# git push -u origin master
Counting objects: 3, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 297 bytes | 0 bytes/s, done.
Total 2 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To git@gitee.com:aaakui/test_code.git
c0cf76e..f9d0c7b master -> master
Branch master set up to track remote branch master from origin.
# 在同步一下本地内容,第二次修改后上传到了码云,这个操作为了改变本地的
-#后续同步代码
[root@web02 test_code]# git pull
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 2 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (2/2), done.
From gitee.com:aaakui/test_code
c0cf76e..f9d0c7b master -> origin/master
Merge made by the 'recursive' strategy.
test_code | 1 +
1 file changed, 1 insertion(+)
create mode 160000 test_code
创建分支
# 拉所有分支
[root@web02 test_code]# git fetch -vp
From gitee.com:xxxxxx/test_code
= [up to date] master -> origin/master
* [new branch] aaa_branch -> origin/aaa_branch
= [up to date] ceo_branch -> origin/ceo_branch
= [up to date] ms_branch -> origin/ms_branch
git简化操作
# git 简化操作
echo 'alias ga="git add"'>> ~/.bashrc
echo 'alias gc="git commit -v"'>> ~/.bashrc
echo 'alias gl="git pull"'>> ~/.bashrc
echo 'alias gp="git push"'>> ~/.bashrc
echo 'alias gco="git checkout"'>> ~/.bashrc
echo 'alias gst="git status -sb"'>> ~/.bashrc
# 生效别名
source ~/.bashrc
[root@db01 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高级操作
场景: 花了一周时间,写了一堆代码,但是没写完 只能使用前一个版本的代码,此时不想放弃这些代码
# 1.修改代码
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>代码迭代过程-哈哈王呀</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div id="demo">恭喜发财</div>
<div id="demo2"></div>
<div id="demo3">神奇魔法</div>
<script src="main.js"></script>
</body>
</html>
# 2.把改了没用的代码封起来
[root@db01 code]# git stash
封完之后,被修改的代码文件不会发生变化
# 3.但当你想要被修改了但是没用被封装的代码时:
[root@db01 code]# git stash pop