首先,先上几个外链接,是git命令大全的博客:
还有可以参考“廖雪峰的git教程”。
下面,我讲一下我自己从中摸索到的git入门教程,会敲这些命令了也不一定算入门吧,不过起码能自己通过命令行上传文件到远程仓库了。
1.首先下载git,Linux下载安装git很容易,直接命令行敲一句命令就行了,Windows的话需要下载安装一个git for Windows软件,本人下面的步骤也是在Windows系统下进行的,但是命令和在Linux下敲是一样的。然后就是开始敲各种命令了。
2.首先在github上创建仓库(目前自己还没找到通过命令行新建github仓库的办法),下图是新建完成之后的页面:
2:然后在本地上新建一个文件夹,直接建跟仓库同名的。当然也可以随意建个文件夹当中间目录然后从网上克隆仓库下到本地
3:通过命令行用mkdir命令也可以新建目录:
rm -d directoryName命令用于删除文件夹,rm filename直接删除文件,ls命令查看当前路径所有目录/文件。
4:然后把你要存放的东西放到此目录下
5:好了,下面就真正开始进入命令行狂敲命令了。首先在git bash中先cd到刚才的那个文件夹路径下,注意路径不能是单个右斜杠,可以是单个左斜杠或者双右斜杠:
在命令行cd到该目录下,这步很基础但是很关键,因为后续所有操作都是要在当前路径下进行的。不然会导致后面所有的git操作都是无用功,而且会出现奇怪的报错(说奇怪其实是因为自己英语不够好看不太懂报错意思)。
6.输入git init初始化仓库,然后回去看看目录,会发现多了一个.git的隐藏文件夹
git init
7:接下来进行git用户名和邮箱的配置,输入如下两句命令:
git config --global user.name ["YourName"]
git config --global user.email ["EmailName"]
然后输入
git config --list
命令可以查看本地git仓库的配置情况列表。
8:ls命令查看下路径下所有的目录和文件
9:首先将你要上传到网上的某个文件add到缓冲区中-,有个很强大的技巧是tab键可自动补全文件名(这个技巧在任何的命令行中都通用,包括Windows或Linux的终端)。我这里讲Readme.md文件添加到缓冲区中,缓冲区的概念可以上网查查git教程,我的理解是就像物流仓库一样,你需要将物品先放到流水线上,这里的流水线就是缓冲区,然后启动流水线开关把物品push到远端,也就是后面会用到的push命令。至于.md文件,也就是markdown文件,是个比较精辟强大的文件格式,可以专门下一个软件来编辑这类文件,比如markdownPad软件,各平台的都有。
git add [fileName]
10:当然,也可以一次把当前路径所有的文件(包括文件夹)add到缓冲区中,在add后面加一个空格以及一个点就行了:
git add .
11:然后对这次即将上传到网上的变化做一个commit标记,commit相当于对当前修改版本的备注:
git commit [commitName]
12:添加远程仓库,这里说的远程仅仅指本机的所谓远程而并不是网上远程,截图中的结果是因为我之前添加过该远程仓库所以报错说已经存在该远程仓库了:
git remote add [originName] [url]
13:然后前期准备工作都准备得差不多了,当然你也可以添加tag(标签)跟commit绑定,本篇不包括标签操作。
我们现在可以提交缓冲区内容到网上,输入如下命令push当前分支到网上:
git push -u [remoteName] [branchName]
remoteName表示上面你新建的远程仓库的名字origin,branchName表示要上传的分支名字,这里我们只有个master主分支,还没建别的分支,所以直接写master就好。
另外-u表示讲本地仓库自动和远程仓库连接绑定,后面push就不用再敲-u进去也行。
然后会自动弹出ssh验证信息--分别输入你github的用户名以及密码。
14:提交成功,命令行看到回复成功,github刷新下发现成功上传文件:
至此,就完成了git一个很基础的流程:将本地文件(仓库)上传到网上。
下面继续说一说别的一些技巧和流程。
15:刚才说的,下一次push就不用-u也行了:
git push [remoteName] [localBranchName]
16:新建分支然后切换分支的两种方法:
第一种方法将两步分开来做:
先新建分支:
git branch [branchName]
然后下面命令可以查看下所有分支,看分支是否创建成功:
git branch -a
然后第二步,切换分支到刚才新建的分支下:
git checkout [branchName]
第二种方法是新建和切换一步到位:
git checkout -b [branchName]
不仅我们的git操作是在当前文件路径下进行的,也是在当前分支下进行的,不同的分支可以有不同的文件,在Windows也会有两批保存,这可能会导致分支切换出现问题,往下会说。
17:同理在当前分支状态下进行add文件、commit和push等操作:
18:如果有多个branch,然后每个branch的修改不同,比如你当前只是在newBranch增加了一个h.txt文件,那么重新切换回master branch时,你会发现本地文件夹里你的这个文件不见了。
统一文件的方法有:
方法一:将同样的修改反映到各个branch去,也就是给master分支也添加h.txt文件(手动操作太麻烦)
方法二:将newBranch分支合并到master分支(快捷),命令如下:
git merge [branchName]
这条命令表示,将[branchName]的分支合并到当前分支,所以你可能需要先切换下当前分支。
19:如果对不同的分支分别进行了很多不同的操作,导致各自有很多的不同文件,那么在切换分支时可能会出现如下报错:
你可以按返回结果的提示去一一把文件进行移动整理,也可以暴力移动,但不建议这样做:
20:然后就是前面说到的新建本地仓库的第二种方法:就是我直接从github上克隆我的仓库下到本地来:
git clone [gitURL]
21:另外,如果push过程中遇到了如下问题:
error: src refspec master does not match any.
error: failed to push some refs to 'origin'
请检查下是不是像我一样,都还没有cd到正确的路径下:
如果不是这个问题或者是别的错误,直接把错误扔给搜索引擎去帮你。
另外,本地推送到网上的修改是会直接覆盖原仓库的,也就是说你在本地删除某个文件夹,push到网上后,网上的也是你push上来的这个删了文件夹的版本。当然,也可以用git命令行来删除文件或文件夹。