创建新的仓库并 push 到远程仓库
echo "# t" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:kuhufu/项目名.git
git push -u origin master
push 一个已经存在的仓库到远程仓库
git remote add origin git@github.com:kuhufu/项目名.git
git push -u origin master
操作远程仓库
显示当前绑定的远程仓库
git remote -v
添加绑定的远程仓库
git remote add <name> <url>
解除绑定的远程仓库
git remote remove <name>
重命名远程仓库
git remote rename <oldname> <newname>
生成SSH Key
执行以下命令生成key
$ ssh-keygen -t rsa -C "youremail@example.com"
后面的 your_email@youremail.com
改为你在 github 上注册的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在~/
下生成.ssh
文件夹,进去,打开 id_rsa.pub
,复制里面的 key。然后回到 github 添加SSH keys
ssh -T git@github.com
测试一下
这样提示表示成功了
Hi kuhufu! You've successfully authenticated, but GitHub does not provide shell access.
需要注意的是输入密码后每次push都会要求输入此密码,为了方便可以不用密码
远程仓库与本地仓库同步
在远程已经有更新时,我们push到远程的时候,必须先把远程的改动拉到本地合并起来,才能再次提交我们的修改。所以当远程仓库已经有更更新时,我们push会有错误。
从远程 origin 仓库的 master 主分支更新最新的版本到本地master分支上
git fetch origin master
比对下当前 本地master 分支和 origin/master 分支的区别
git log -p master..origin/master
把 origin/master 分支上的内容合并到 本地master 分支
git merge origin/master
然后我们才能 push 。
更简便的方法:git pull origin master
一键完成上述步骤
移除文件
使用 rm 命令即可,有两种选择.
-
git rm --cached "文件路径"
,不删除物理文件,仅将该文件从缓存中删除; -
git rm --f "文件路径"
,不仅将该文件从缓存中删除,还会将物理文件删除(不会回收到垃圾桶)
假如你有文件不小心 commit 到了服务器那么你想要删除它,可以使用:
git rm -- cached "文件路径"
git commit -m "delete file"
git push
问题
每一次使用git push
命令都需要重新输入一次用户名和密码,这是一个很烦人的小问题。Google之,找到了解决办法。
解决办法
在git bash中输入:
git config --global credential.helper store
下一次你再在你的项目中使用
git push
命令的时候,你的登录凭据将会被记住,这样就不用每次push都重新输入一次用户名和密码了。
还有一种情况是你的origin是
项目的https地址
$ git remote -v
origin https://github.com/kuhufu/nsqgo (fetch)
origin https://github.com/kuhufu/nsqgo (push)
而不是使用ssh的地址
$ git remote -v
origin git@github.com:kuhufu/nsqgo.git (fetch)
origin git@github.com:kuhufu/nsqgo.git (push)