把项目托管到码云(Gitee)
这里写目录标题
一、仓库与主分支的创建与提交
1. 生成并配置 SSH 公钥
Gitee 提供了基于SSH协议的Git服务,在使用SSH协议访问仓库之前,需要先配置好账户/仓库的SSH公钥。
① 按如下命令来生成 sshkey:
ssh-keygen -t ed25519 -C "[email protected]"
⚠️注意:
1)这里的 "[email protected]"只是生成的 sshkey 的名称,不约束或要求具体命名为某个邮箱;
2)这里的"ed25519" 可以叫换成其他的名字
按照提示完成三次回车,即可生成 ssh key。通过查看 ~/.ssh/id_ed25519.pub
文件(`C:/Users/玖玖/.ssh/id_ed25519.pub) 内容,获取到你的 public key。
② 添加公钥
复制生成后的 ssh key,通过头像 「设置」–>「安全设置」–>「SSH公钥」 ,添加生成的 public key 添加到仓库中
③ 检查SSH公钥是否配置成功
打开项目所在目录,按住shift,右键选择"在此处选择PowerShell窗口"
输入:
ssh -T [email protected]
首次使用需要确认并添加主机到本机SSH可信列表。若返回 Hi XXX! You’ve successfully authenticated, but Gitee.com does not provide shell access. 内容,则证明添加成功。
在(yes/no/[fingerprint])? 输入yes,首次使用需要确认并添加到主机SSH可信列表。显示上图返回信息则为SSH添加成
2. 创建空白的码云仓库
点击"+"–>新建仓库–>填写仓库名–>“创建”
3. 上传本地项目到码云的空白仓库
点击SSH方式,用以下命令把项目上传到码云:
cd existing_git_repo # 定位到项目目录(这里手动在项目根目录打开powershell就行)
git remote add origin [email protected]:jchim/uni-shop2.git # 将本地仓库和码云仓库进行关联
git push -u origin "master" # 将本地仓库代码推送到码云仓库中
⚠️注意:两行代码具体内容是啥参考新建仓库的内容说明,复制即可。
显示以下结果表示上传成功!
4. 注意点
① 上传之前项目目录必须有.git文件,证明项目已经使用git管理项目。
链接:如何使用git管理文件
② 目前(我自己)每个本地仓库(项目)只能上传到一个git仓库中。如果企图把一个本地项目上传到多个git仓库中,会报错:error: remote origin already exists.
,要删除config文件后才能上传到其他仓库。
但是删除config文件之后不知道关联性是否脱离了,也不清楚删除config会对原仓库(第一个远程仓库)有什么影响。
二、分支的提交与合并
1. 创建名为 “tabbar” 的分支
运行如下的命令,基于 master 分支在本地创建 tabbar 子分支,用来开发和 tabbar 相关的功能:
git checkout -b tabbar # 名字自定义
2. 将本地的 tabbar 分支进行本地的 commit 提交
git add . # 把所有新的(更改过的)文件添加到暂存区
git status # 检查一下上述文件的状态(显示绿色 new file: ...即为添加成功)
git commit -m "完成了 tabBar 的开发" # 进行本地提交(此时本地仓库的tabbar分支已更新)
3. 将本地的 tabbar 分支推送到远程仓库进行保存
git push -u origin tabbar # 将本地的 tabbar 分支推送到远程仓库进行保存(此时gitee仓库已有tabbar分支)
⚠️注意:首次提交要带-u
,表示将本地的"tabbar分支" 提交到远程的origin仓库,也叫做"tabbar分支"
4. 将本地的 tabbar 分支合并到本地的 master 分支
git checkout master # 切换到 master 分支
git merge tabbar # 将 master 分支和 tabbar 分支合并 此时本地的master分支代码已经是最新的了,但还没有推送到远程仓库
git push # 将当前所在分支推送到远程仓库
5.删除本地的 tabbar 分支:
git branch -d tabbar # 删除本地的tabbar分支,但仍旧保留了远程仓库的tabbar分支
⚠️注意:删除某个分支时,必须先切换到其他分支才能这个分支
三、Gitee常用命令汇总
1. Git 常用命令速查
git branch 查看本地所有分支
git status 查看当前状态
git commit 提交
git branch -a 查看所有的分支
git branch -r 查看远程所有分支
git commit -am “init” 提交并且加注释
git remote add origin [email protected]:ndshow
git push origin master 将文件给推到服务器上
git remote show origin 显示远程库origin里的资源
git push origin master:develop
git push origin master:hb-dev 将本地库与服务器上的库进行关联
git checkout --track origin/dev 切换到远程dev分支
git branch -D master develop 删除本地库develop
git checkout -b dev 建立一个新的本地分支dev
git merge origin/dev 将分支dev与当前分支进行合并
git checkout dev 切换到本地dev分支
git remote show 查看远程库
git add .
git rm 文件名(包括路径) 从git中删除指定文件
git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来
git config --list 看所有用户
git ls-files 看已经被提交的
git rm [file name] 删除一个文件
git commit -a 提交当前repos的所有的改变
git add [file name] 添加一个文件到git index
git commit -v 当你用-v参数的时候可以看commit的差异
git commit -m “This is the message describing the commit” 添加commit信息
git commit -a -a是代表add,把所有的change加到git index里然后再commit
git commit -a -v 一般提交命令
git log 看你commit的日志
git diff 查看尚未暂存的更新
git rm a.a 移除文件(从暂存区和工作区中删除)
git rm --cached a.a 移除文件(只从暂存区中删除)
git commit -m “remove” 移除文件(从Git中删除)
git rm -f a.a 强行移除修改后文件(从暂存区和工作区中删除)
git diff --cached 或 $ git diff --staged 查看尚未提交的更新
git stash push 将文件给push到一个临时空间中
git stash pop 将文件从临时空间pop下来
git remote add origin [email protected]:username/Hello-World.git
git push origin master 将本地项目给提交到服务器中
git pull 本地与服务器端同步
git push (远程仓库名) (分支名) 将本地分支推送到服务器上去。
git push origin serverfix:awesomebranch
git fetch 相当于是从远程获取最新版本到本地,不会自动merge
git commit -a -m “log_message” (-a是提交所有改动,-m是加入log信息) 本地修改同步至服务器端 :
git branch branch_0.1 master 从主分支master创建branch_0.1分支
git branch -m branch_0.1 branch_1.0 将branch_0.1重命名为branch_1.0
git checkout branch_1.0/master 切换到branch_1.0/master分支
du -hs
git branch 删除远程branch
git push origin :branch_remote_name
git branch -r -d branch_remote_name
初始化版本库,并提交到远程服务器端
mkdir WebApp
cd WebApp
git init 本地初始化
touch README
git add README 添加文件
git commit -m ‘first commit’
git remote add origin [email protected]:daixu/WebApp.git
增加一个远程服务器端
上面的命令会增加URL地址为’[email protected]:daixu/WebApp.git’,名称为origin的远程服务器库,以后提交代码的时候只需要使用 origin别名即可
2. Git 命令速查表
2.1 常用的Git命令
命令 | 简要说明 |
git add |
添加至暂存区 |
git add–interactive |
交互式添加 |
git apply |
应用补丁 |
git am |
应用邮件格式补丁 |
git annotate |
同义词,等同于 git blame |
git archive |
文件归档打包 |
git bisect |
二分查找 |
git blame |
文件逐行追溯 |
git branch |
分支管理 |
git cat-file |
版本库对象研究工具 |
git checkout |
检出到工作区、切换或创建分支 |
git cherry-pick |
提交拣选 |
git citool |
图形化提交,相当于 git gui 命令 |
git clean |
清除工作区未跟踪文件 |
git clone |
克隆版本库 |
git commit |
提交 |
git config |
查询和修改配置 |
git describe |
通过里程碑直观地显示提交ID |
git diff |
差异比较 |
git difftool |
调用图形化差异比较工具 |
git fetch |
获取远程版本库的提交 |
git format-patch |
创建邮件格式的补丁文件。参见 git am 命令 |
git grep |
文件内容搜索定位工具 |
git gui |
基于Tcl/Tk的图形化工具,侧重提交等操作 |
git help |
帮助 |
git init |
版本库初始化 |
git init-db* |
同义词,等同于 git init |
git log |
显示提交日志 |
git merge |
分支合并 |
git mergetool |
图形化冲突解决 |
git mv |
重命名 |
git pull |
拉回远程版本库的提交 |
git push |
推送至远程版本库 |
git rebase |
分支变基 |
git rebase–interactive |
交互式分支变基 |
git reflog |
分支等引用变更记录管理 |
git remote |
远程版本库管理 |
git repo-config* |
同义词,等同于 git config |
git reset |
重置改变分支“游标”指向 |
git rev-parse |
将各种引用表示法转换为哈希值等 |
git revert |
反转提交 |
git rm |
删除文件 |
git show |
显示各种类型的对象 |
git stage* |
同义词,等同于 git add |
git stash |
保存和恢复进度 |
git status |
显示工作区文件状态 |
git tag |
里程碑管理 |
2.2 对象库操作相关命令
命令 | 简要说明 |
git commit-tree |
从树对象创建提交 |
git hash-object |
从标准输入或文件计算哈希值或创建对象 |
git ls-files |
显示工作区和暂存区文件 |
git ls-tree |
显示树对象包含的文件 |
git mktag |
读取标准输入创建一个里程碑对象 |
git mktree |
读取标准输入创建一个树对象 |
git read-tree |
读取树对象到暂存区 |
git update-index |
工作区内容注册到暂存区及暂存区管理 |
git unpack-file |
创建临时文件包含指定 blob 的内容 |
git write-tree |
从暂存区创建一个树对象 |
2.3 更多命令汇总查看博客
链接: Git 常用命令大全