Git教程-把本地仓库推送至远程仓库
以码云为例,介绍如何将本地仓库上传至远程仓库。共有6个步骤。
主要代码如下:
1 | git init |
以下为详细内容:
git init [folder]
初始化本地仓库,命令行目录切换至本地仓库目录后运行git init,或在后面添加本地仓库目录。
Git add
git add [参数]<路径>作用就是将我们需要提交的代码从工作区添加到暂存区,就是告诉git系统,我们要提交哪些文件,之后就可以使用git commit命令进行提交了。
git add .
“.”表示当前目录,可以修改。监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。
git add -u .(git add –update .)
监控已经被add的文件(即tracked file),会将被修改的文件提交到暂存区。但不会提交新文件(untracked file)。
git add -A .(git add –all .)
是上面两个功能的合集。
总结:
git add -A 提交所有变化
git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
Git commit
git commit 主要是将暂存区里的改动给提交到本地的版本库。每次使用git commit 命令我们都会在本地版本库生成一个40位的哈希值,这个哈希值也叫commit-id,commit-id在版本回退的时候是非常有用的,它相当于一个快照,可以在未来的任何时候通过与git reset的组合命令回到这里。
git commit -m ‘message’
“-m ”参数表示可以直接输入后面的“message”,如果不加-m参数,那么是不能直接输入message的,而是会调用一个编辑器一般是vim来让你输入这个message,message即是我们用来简要说明这次提交的语句。 ## git commit -am ‘message’ -am等同于-a -m
“-a”参数可以将所有已跟踪文件中的执行修改或删除操作的文件都提交到本地仓库,即使它们没有经过git dd添加到暂存区。
注意: 新加的文件(即没有被git系统管理的文件)是不能被提交到本地仓库的。
git remote add origin https_Address
添加远程库,即建立本地仓库与远程仓库关联。
git pull –rebase origin master
在本地仓库生成“README.md”和“README.en.md”两个文件。
git push
git push的一般形式为 git push <远程主机名> <本地分支名> <远程分支名> ,例如 git push origin master:refs/for/master ,即是将本地的master分支推送到远程主机origin上的对应master分支, origin是远程主机名,第一个master是本地分支名,第二个master是远程分支名。
git push origin master
如果远程分支被省略,如上则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。
git push origin:refs/for/master
如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,等同于 git push origin –delete master。
git push origin
如果当前分支与远程分支存在追踪关系,则本地分支和远程分支都可以省略,将当前分支推送到origin主机的对应分支。
git push
如果当前分支只有一个远程分支,那么主机名都可以省略,形如 git push,可以使用git branch -r ,查看远程的分支名。
git push -u origin master
如果当前分支与多个主机存在追踪关系,则可以使用 -u 参数指定一个默认主机,这样后面就可以不加任何参数使用git push。
git push –all origin
当遇到这种情况就是不管是否存在对应的远程分支,将本地的所有分支都推送到远程主机,这时需要 -all 选项。
git push –force origin
git push的时候需要本地先gitpull更新到跟服务器版本一致,如果本地版本库比远程服务器上的低,那么一般会提示你git pull更新,如果一定要提交,那么可以使用这个命令。
git push origin –tags
git push 的时候不会推送标签,如果一定要推送标签的话那么可以使用这个命令。