git pull一个仓库到本地自定义文件夹
提示:
1. git下有两种方式把代码从远程仓库下载到本地,HTTPS 和 SSH。
2. 两种方式在没有权限(用户名密码)下HTTPS只能下载,SSH不能下载(pull)也不能上传(push)
3. 本地的仓库文件夹,不需要和远程仓库名一样。
例如:远程仓库是https://gitee.com/wc/nginx.git 默认clone下载到本地,文件夹名字就是nginx
$ git clone https://gitee.com/wc/nginx.git // 下载后本的文件夹名nginx $ git clone https://gitee.com/wc/nginx.git test // 下载后本的文件夹名test
但是如果文件夹 test 已经存在,直接用 git pull 就可以。
---------------------------------------------------------------------------
正文:
一、新建一个文件夹,存放网络仓库下载的文件。
$ mkdir test $ cd test/
二、初始化文件夹成一个git仓库(其实git就在当前目录下新建一个.git名字的隐藏文件夹)
$ git init
三、添加远程仓库地址
$ git remote add origin https://gitee.com/用户名/项目名.git
origin是git默认给远程仓库起的名字,你可以改称任何你想要的名字
四、创建分支
$ echo "1" >1.txt $ git add . $ git commit -m '1.txt'
为什么要手动创建一个分支,正常情况下 下载一个远程仓库用git clone 命令,就给自动创建了。
但因为现在模拟特殊情况,初始化完的文件夹并没有分支,就需要手动创建,而手动创建,
目前已知的就是,用commit提交文件后才能产生,空文件夹下,git checkout -b master 和 git branche master
也创建不出来默认master分支,所以只能手动创建文件并commit后生成。
五、pull远程仓库文件到本地
$ git pull //使用默认的origin时,可以省略origin
或
$ git pull origin //当你没有是用默认的origin时,可以指定你设置的名字
此时因为没有把 远程仓库分支 和 本地分支 关联,应该会提示一下错误内容。
remote: Enumerating objects: 31, done.
remote: Counting objects: 100% (31/31), done.
remote: Compressing objects: 100% (26/26), done.
remote: Total 31 (delta 1), reused 0 (delta 0), pack-reused 0
展开对象中: 100% (31/31), 完成.
来自 https://gitee.com/用户名/项目名
* [新分支] master -> origin/master
当前分支没有跟踪信息。
请指定您要合并哪一个分支。
详见 git-pull(1)。
git pull <远程> <分支>
如果您想要为此分支创建跟踪信息,您可以执行:
git branch --set-upstream-to=origin/<分支> master
六、关联 远程仓库分支 和 本地分支
git branch --set-upstream-to=origin/master master
origin/master:origin 是上面第三步add后面的origin(默认一般是这个),当然你改其他的任意名字都行;
master是远程的分支名,可以到远程仓库里查看,master(默认一般是这个)
master:和本地哪个分支关联,master(默认一般是这个)
七、关联后重新pull ,又会提示“拒绝合并无关的历史”
$ git pull fatal: 拒绝合并无关的历史
八、强制合并
$ git pull --allow-unrelated-histories
至此,下载远程仓库完成。
另:如果你要 上传,用git push 会提示你输入用户名和密码(密码输入时什么也不显示,输完直接回车)