Git实战:创建本地版本库并将本地项目推送到Github

刚刚写完了一款chrome-extension:Copy with URL(将选中文字复制为超链接文本),随即满心欢喜地想尽快把它分享出去。按以往的习惯,我会手工把它托管在Github上。但这次,我想玩点高端的操作,用命令代替低效的手工操作。我貌似在工作方式的效率上有着强迫症般的高要求,这有时也让我无法关注工作本身,很苦恼。

我一开始误以为Git就是Github的命令行操作方式,然而当我去Github查看刚创建的版本库时,一脸尴尬。使用Git将本地项目同步到Github大体上需要两步,创建本地库和添加远程库。

这里用到的工具是Windows平台下Git的组件之一-Git Bash。操作步骤主要参照了廖雪峰的Git教程,该教程对Git的功能和操作进行了实用讲解。用作者的话说,就是浅显易懂,由浅入深。所以,这里我不唠叨原理,只记录操作。

1. 创建版本库

1.1 准备工作

 打开Git Bash,命令行界面的样子:

使用你的名字和邮箱为本机在Git系统上注册身份:

$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"

不写"Your Name"或"[email protected]"则可以查询本机身份。

1.2 创建一个文件夹

cd 到你心仪的目录,创建一个空文件夹作为本地仓库,进入到新建文件夹中:

$ cd d:/Develop/Git
$ mkdir Copy_with_URL
$ cd Copy_with_URL

注意:本地仓库的命名不能含有空格,否则不会创建一个名称包含空格的文件夹,而是创建多个文件夹;路径和文件夹避免使用中文,以防不测;直接进入一个已经包含文件的文件夹也是可以的。

1.3 初始化仓库

将平凡的文件夹变身为Git可以管理的仓库:

$ git init

空仓库初始化成功后,仓库内会新添一个.git文件夹,如果该文件夹被隐藏,可以用 $ ls -ah命令查看。不要去招惹该文件夹,它是用来跟踪管理版本库的,有了它才让平凡的文件夹不平凡。

命令行提示符看着也更高档了些,变成如下形式:

YHB@DESKTOP-U4VUBSM MINGW64 /d/Develop/Git/Copy_with_URL (master)

1.4 添加文件

创建或拷贝项目的代码文件到Copy_with_URL, $ git status 可以查看当前的版本库状态。

将文件添加到仓库:

$ git add codeA.c codeB.c

此时的文件被添加到仓库暂存区。

多个代码文件用空格分隔,如果需要将仓库目录下全部的文件添加到仓库,可以使用命令 $ git add . 。


 意外:在添加文件的时候,命令行竟然提示一类警告:

warning: LF will be replaced by CRLF in background-cp.js.
The file will have its original line endings in your working directory.

解决意外往往是最耗时间和精力的,反复琢磨了几遍git如何避免”warning: LF will be replaced by CRLF“提示?中@Andy Deng的回答,大致了解到这是Windows特有,关乎代码文件换行符格式的一类警告。

出现此警告是由于配置文件中的设置 core.safecrlf=true 而 core.safecrlf=false ,且文件中的换行符不满足格式统一的要求所致,命令 $ git config --global core.autocrlf[core.safecrlf] 可以查看指定参数的值。

但实际上无需担心该警告,因为这是一个正确的配置。此警告说明Git已经为用户采取了解决方案,但不会改变你的源代码文件。

除此配置外,通过阅读 git-config 文档理解 Git 如何使用autocrlf、safecrlf、eol和.gitattributes处理line-ending建议Windows平台下正确的配置应遵循这三步:

  1. 添加.gitattributes
  2. 将safecrlf设置为true,命令 $ git config --global core.safecrlf true 
  3. 将autocrlf设置为true,命令 $ git config --global core.autocrlf true 

按作者所说,如果将core.safecrlf值为true的话,Git对待有问题的源代码,可能就不会采取任何措施,而是扔给你一个致命错误(fatal),然后拒绝文件添加请求。所以上述配置应该是一种严格的正确配置,此时如果源代码换行符格式一旦不满足要求,还需要用户自行使用dos2unix工具来将LF转换为CRLF。

1.5 提交文件到仓库

$ git commit -m "comment"

 git commit 命令将 git add 添加到暂存区的代码一同提交到仓库,输出本次提交的改动信息,这时你可以放心的将项目交由Git来管理了。 -m 后面输入的是本次提交的注解,强烈建议输入有意义的注解,这样你就能从历史记录里方便地找到改动记录。

2. 添加远程库

懒得自己写了,Git的使用--如何将本地项目上传到Github第五步开始图文详解了具体的操作过程,整个流程也没遇到什么意外。

3. 疑惑

将两个不同的本地仓库推送到同一个Github会如何?

如果复制一份仓库副本,哪一个才是master?

 

这里欠一个总结。

版本回退,分支管理这些内容用到的时候,再做补充。

参考资料

Git教程

git如何避免”warning: LF will be replaced by CRLF“提示?

通过阅读 git-config 文档理解 Git 如何使用autocrlf、safecrlf、eol和.gitattributes处理line-ending

Git的使用--如何将本地项目上传到Github

猜你喜欢

转载自www.cnblogs.com/yusimiao29/p/9160110.html