github这东西没有系统学过,每次用到一个功能就要翻个好几篇博客,而且老是出现各种各样的错误,这篇主要用于记录我在git上碰到的各种问题,造福自己造福大家!
git代理
为了加速有时候会挂代理,有时候又会因为下载问题需要取消。。。
// 查看当前代理设置
git config --global http.proxy
git config --global https.proxy
// 设置当前代理为 http://127.0.0.1:1080 或 socket5://127.0.0.1:1080
git config --global http.proxy 'http://127.0.0.1:1080'
git config --global https.proxy 'http://127.0.0.1:1080'
git config --global http.proxy 'socks5://127.0.0.1:1080'
git config --global https.proxy 'socks5://127.0.0.1:1080'
// 删除 proxy
git config --global --unset http.proxy
git config --global --unset https.proxy
提交本地文件到远程仓库
假设未git clone下仓库
git init // 执行指令进行初始化,会在原始文件夹中生成一个隐藏的文件夹.git
git add . //添加当前文件夹下的所有文件
git commit -m "first commit" //引号中的内容为对该文件的描述
git remote add origin https://github.com/xxxxx //新建一个repository时会出现下面的代码,直接复制即可
git push origin master //提交
远程repository和本地的repository冲突
常见于新建仓库时建了Readme.md,本地却没有这个文件。
报错如下:
$ git push -u origin master
To git@github.com:******/Demo.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:******/Demo.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
解决方法:
1.使用强制push的方法:
git push -u origin master -f
注意:这样会使远程修改丢失,一般是不可取的,尤其是多人协作开发的时候。
但是如果是自己使用的仓库确认可以覆盖或者第一次上传就采取本方法最好,简单省事。
2.push前先将远程repository修改pull下来
git pull origin master
git push -u origin master
3.若不想merge远程和本地修改,可以先创建新的分支:
git branch [name]
然后push
git push -u origin [name]
避免每次push输入帐号密码
git config --global credential.helper store
引入他人git仓库,需要上传修改
引用自http://jartto.wang/2017/12/28/cannot-nest-git-repository/
首先,进入子仓库,也就是被嵌套的 Git 仓库,删除 .git 目录:
rm -rf .git
可以这么理解,一个项目不应该有俩 Git 地址,所以断开子仓库的原有联系,也就是删除 .git 目录。
然后,将你添加的项目拖出当前项目文件,进行提交。之后,再将项目拖回来,返回项目根目录,执行 add 操作:
git add 引用的仓库名字
再次提交
git 分支管理
查看远程分支
$ git branch -a
* dev
master
remotes/origin/HEAD -> origin/master
remotes/origin/dev
remotes/origin/master
带星号的表示当前本地分支,查看本地分支使用
$ git branch
* dev
master
切换分支:
$ git checkout dev
Switched to a new branch 'dev'
Branch 'dev' set up to track remote branch 'dev' from 'origin'.
提交时选定对应的本地分支提交
$ git push origin dev
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (5/5), 2.31 KiB | 2.31 MiB/s, done.
Total 5 (delta 0), reused 0 (delta 0), pack-reused 0
To http://gitlab.alibaba-inc.com/ytz/daas-clients.git
7060b62..6677be6 dev -> dev