git上传项目:
转载记一次github上传文件夹(项目)的历程和踩坑 - 探歌 - 博客园 (cnblogs.com)
1.上传文件
输入命令: git init
输入命令(有个空格):git add . //添加所有文件到缓存区
输入命令:git commit -m "你的说明注释"
输入命令:git remote add origin "刚才复制的git账户的仓库http地址"
输入命令:git push -u origin master
*push 不上去就把remote换成SSH链接,push时本地分支要和远程分支同名并建立联系
git checkout -b 本地分支 origin/远程分支
2.下载
git clone 链接
3.分支操作
git branch //获取分支
创建分支:git branch name
git branch -d 分支名 //删除本地分支
强制删除本地分支:git branch -D 分支名称
git push origin --delete 分支名 //删除远程分支
4.命令
ls //查看文件
ls -a //查看所有文件
git ls-files //查看暂存区文件
rm -r .git/index //清空暂存区
rm -rf .git/ //删除 .git/
rm 文件名 //删除文件 会同时删除缓存区+工作区文件!!
rm -r 文件夹名 //删除文件夹 会同时删除缓存区+工作区文件!!
git rm -cached 文件名 //只删除缓存区文件
git rm -r -cached 文件夹名 //只删除缓存区文件夹
VScode:链接远端库 SSH链接
-
配置提交人姓名:
git config --global user.name 提交人姓名
- 1
-
配置提交人邮箱:
git config --global user.email 提交人邮箱
- 1
-
查看git配置信息:
git config --list
生成ssh
ssh-keygen -t rsa -C "qq.com"
直接三次回车就会看到ssh目录下多了两份新的文件(第一次回车是确认把ssh保存在哪个目录)
4、把ssh添加到git设置里
- 在git中clone项目有两种方式:HTTPS和SSH,它们的区别如下:
- HTTPS:不管是谁,拿到url随便clone,但是在push的时候需要验证用户名和密码;
- SSH:clone的项目你必须是拥有者或者管理员,而且需要在clone前添加SSH Key。SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。
问题解决
SSH拉取失败选择HTTP!
git clone --recursive 保证所有文件都clone包括子模块文件
使用Git pull文件时,出现"error: RPC failed; curl 18 transfer closed with outstanding read data remaining"
error: RPC failed; curl 18 transfer closed with outstanding read data remaining fatal: The remote end hung up unexpectedly fatal: early EOF fatal: index-pack failed
出现以上错误有以下原因
1.缓存区溢出curl的postBuffer的默认值太小,需要增加缓存
使用git命令增大缓存(单位是b,524288000B也就500M左右)
git config --global http.postBuffer 524288000
使用git config --list查看是否生效
此时重新克隆即可
2.网络下载速度缓慢
修改下载速度
git config --global http.lowSpeedLimit 0 git config --global http.lowSpeedTime 999999
3.以上两种方式依旧无法clone下,尝试以浅层clone,然后更新远程库到本地
git clone --depth=1 http://xxx.git git fetch --unshallow
git bash中出现>符号:按control+D退出
! [rejected] master -> master (fetch first) push代码报错:
温柔型方案:
通过git pull 先将本地库更新到与远程库一致的版本,但要注意本地库后来做的修改可能被覆盖,最好使用git fetch(不会自动合并),查看更新情况再有选择合并,或者先将本地库修改过的文件备份,git pull后再重新修改;
再运行git push即可成功。
暴力型方案:
git提供了一种强制上传的方式:git push -f ,它会忽略版本不一致等问题,强制将本地库上传的远程库,但是一定要谨慎使用,因为-f会用本地库覆盖掉远程库,如果远程库上有重要更新,或者有其他同伴做的修改,也都会被覆盖,所以一定要在确定无严重后果的前提下使用此操作。
解决网络问题:
手动配置git的代理。git客户端输入如下两个命令就可以了。
git config --global http.proxy http://127.0.0.1:1080
git config --global https.proxy http://127.0.0.1:1080
http://也可以改成sockets5://,但是区别在于:socks5不支持通过pubkey免密登录github,每次提交代码只能输入用户名和密码。http可以支持免密登录。
再取消代理:
git config --global --unset http.proxy
git config --global --unset https.proxy
----
最近使用git pull的时候多次碰见下面的情况:
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> release
其实,输出的提示信息说的还是比较明白的。
使用git在本地新建一个分支后,需要做远程分支关联。如果没有关联,git会在下面的操作中提示你显示的添加关联。
关联目的是在执行git pull, git push操作时就不需要指定对应的远程分支,你只要没有显示指定,git pull的时候,就会提示你。
解决方法就是按照提示添加一下呗:
git branch --set-upstream-to=origin/remote_branch your_branch
其中,origin/remote_branch是你本地分支对应的远程分支;your_branch是你当前的本地分支
保姆级教程:
Git教程 - 廖雪峰的官方网站