前提:定位到自己的要准备建立仓库的文件夹中
git init与git init --bare的区别
git init 初始化仓库会包含.git文件夹,而--bare则不会
git常用命令
1、git init
初始化仓库
2、 git status
查看仓库各文件的状态信息
3、撤销commit的文件
git log
显示commit日志
然后使用图片中的commit值(这是哈希值)
5、 git remote
查询远程仓库,也可以加上 -v选项(译注:此为 --verbose的简写,取首字母),显示对应的克隆地址:
添加远程仓库
要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,运行 git remote add [shortname] [url]:
从远程仓库抓取数据
$ git fetch [remote-name]
此命令会到远程仓库中拉取所有你本地仓库中还没有的数据。运行完成后,你就可以在本地访问该远程仓库中的所有分支,将其中某个分支合并到本地,或者只是取出某个分支,一探究竟。(我们会在第三章详细讨论关于分支的概念和操作。)
如果是克隆了一个仓库,此命令会自动将远程仓库归于 mglue 名下。所以,git fetch mglue会抓取从你上次克隆以来别人上传到此远程仓库中的所有更新(或是上次 fetch 以来别人提交的更新)。有一点很重要,需要记住,fetch 命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并。
如果设置了某个分支用于跟踪某个远端仓库的分支(参见下节及第三章的内容),可以使用 git pull命令自动抓取数据下来,然后将远端分支自动合并到本地仓库中当前分支。在日常工作中我们经常这么用,既快且好。实际上,默认情况下 git clone
命令本质上就是自动创建了本地的 master 分支用于跟踪远程仓库中的 master 分支(假设远程仓库确实有 master 分支)。所以一般我们运行 git pull
,目的都是要从原始克隆的远端仓库中抓取数据后,合并到工作目录中的当前分支。
推送数据到远程仓库
项目进行到一个阶段,要同别人分享目前的成果,可以将本地仓库中的数据推送到远程仓库。实现这个任务的命令很简单:git push [remote-name] [branch-name]
。如果要把本地的 master 分支推送到 origin
服务器上(再次说明下,克隆操作会自动使用默认的 master 和 origin 名字),可以运行下面的命令:
$ git push mgl master
只有在所克隆的服务器上有写权限,或者同一时刻没有其他人在推数据,这条命令才会如期完成任务。如果在你推数据前,已经有其他人推送了若干更新,那你的推送操作就会被驳回。你必须先把他们的更新抓取到本地,合并到自己的项目中,然后才可以再次推送。有关推送数据到远程仓库的详细内容见第三章。
git建立服务器端
1、先将密钥保存在/root/.ssh/authorized_keys
2、建立裸仓库,我的建立在/var/www/html/test.git
git init --bare
客户端就可以推送了
1、建立远程地址
注意:绝对路径
2、开始推送
忽略已经提交的文件
在当前git项目下创建.gitignore
文件,然后写上你要忽略的文件或文件夹.例如
git rm -r --cached . #删除追踪状态
git add .
git commit -m "fixed untracked files"