把代码从一个github被推送到另一个github
上传的哪个远程仓库(无论是码云、Github还是其他托管平台)主要是与你本地仓库的设置有关,一个本地仓库可以添加多个远程仓库。如果你的电脑上有装git命令行的话,你可以使用下面的命令查看你目前关联的远程仓库:
git remote -v
如果你要添加另一个远程仓库,首先你需要先知道远程仓库的url,然后使用:
git remote add <name> <url-of-remote>
添加远程仓库,<name>
是指远程仓库的别名,例如origin、mayun,随便什么都可以,只要你自己可以明白就行,第二个参数是远程仓库的url。
eg:
git remote add self_web_app http://gitlab.sinosoft.com.cn:8777/asm-suite/self_web_app.git
然后
git remote -v:
self_web_app
http://gitlab.sinosoft.com.cn:8777/asm-suite/self_web_app.git(fetch)
self_web_app
http://gitlab.sinosoft.com.cn:8777/asm-suite/self_web_app.git(push)
当你使用git push
推送的时候,你应该指定那个远程仓库:
git push <name of remote repository> <name of branch>
第一个参数是刚刚我们说过的远程仓库的别名,比如常用的origin等等,后面一个参数是分支名字。
eg:
git push
self_web_app develop
上面的方法是针对git命令行的,十分灵活。
git打版本号:
通过Git的打标签功能git tag
来解决这个问题,并用SemVer(语义化版本控制规范)规范标签的命名。
一、打标签
打标签的作用,就是给项目的开发节点,加上语义化的名字,也即功能版本的别名。
打上标签名的同时,写上附带信息,可以方便项目日后维护过程中的回溯和复查。
另外,也可以通过标签记录,大致了解当前项目的向下兼容性、API的修改和迭代情况。
1.1 打标签命令
一般推荐打带附注信息的标签,这样可以最大限度的查看标签版本的修改情况。
// 命令格式
git tag -a 标签名 -m "附注信息"
// 示例
git tag -a v0.1.0 -m "完成了文章a和文章b的撰写,耗费时间2h,感觉棒棒的!"
1.2 举个栗子
一份文集等待出版,有
a、b、c、d
四篇。
现在通过Git管理进度。
1.经过两次commit
操作,添加a.txt
和b.txt
后,将代码修改push到远程仓库。
仓库图表如下:
master -> * 添加b.txt
|
* 添加a.txt
|
* 初始化
2.给当前文集打个标签,顺便留个心情
// 打标签
git tag -a v0.1.0 -m "完成了文章a和文章b的撰写,耗费时间2h,感觉棒棒的!"
// push 标签到远程仓库
git push origin v0.1.0
仓库图表如下:
master v0.1.0 -> * 添加b.txt
|
* 添加a.txt
|
* 初始化
3.再经过两次commit
操作,添加c.txt
和d.txt
后,将代码修改push到远程仓库。
仓库图表如下:
master -> * 添加d.txt
|
* 添加c.txt
|
v0.1.0 -> * 添加b.txt
|
* 添加a.txt
|
* 初始化
4.文集已经写完,打个完结版的标签
// 打标签
git tag -a v1.0.0 -m "文集完成,共4篇文章,等出版。"
// push 标签到远程仓库
git push origin v1.0.0
仓库图表如下:
master v1.0.0 -> * 添加d.txt
|
* 添加c.txt
|
v0.1.0 -> * 添加b.txt
|
* 添加a.txt
|
* 初始化
5.过了段时间,我想知道文集在v0.1.0
版本的情况
// 输出v0.1.0的详情
git show v0.1.0
// 输出结果
tag v0.1.0
Tagger: wall <582104384@qq.com>
Date: Wed May 23 15:57:13 2018 +0800
完成了文章a和文章b的撰写,耗费时间2h,感觉棒棒的!
commit 7107eb8b3f870cd864e3eb5b14f26184d73dd1e6 (tag: v0.1.0)
Author: wall <582104384@qq.com>
Date: Wed May 23 15:27:10 2018 +0800
添加b.txt
diff --git a/src/b.txt b/src/b.txt
new file mode 100644
index 0000000..f9ee20e
--- /dev/null
+++ b/src/b.txt
这里,可以清晰地看到当时打标签的内容和附注信息。
还有另外一个方便的点,就是不需要用hash字符串表示的版本号去查看更改。
以下是用版本号查询的结果:
// 用版本号查看
git show 7107eb8b3f870cd864e3eb5b14f26184d73dd1e6
// 输出结果
commit 7107eb8b3f870cd864e3eb5b14f26184d73dd1e6 (tag: v0.1.0)
Author: wall <582104384@qq.com>
Date: Wed May 23 15:27:10 2018 +0800
添加b.txt
diff --git a/src/b.txt b/src/b.txt
new file mode 100644
index 0000000..f9ee20e
--- /dev/null
+++ b/src/b.txt
@@ -0,0 +1 @@
+This is B.
\ No newline at end of file
链接:https://www.imooc.com/article/30544