git上传代码及删除代码详细步骤

330 阅读3分钟

参考链接: 本地项目代码上传到远端GitLab仓库 git 上传代码到GitHub 以及git删除github上文件和文件的命令

准备工作

  • 注册gitlab或者github账户。
  • 新建仓库。
  • 安装git工具

    参考廖雪峰网站 安装git

上传的步骤

step1:新建本地仓库。

右键选择文件夹会出现git GUI here和git Base here ,前者选择指定文件夹用来创建本地仓库,后者用来进入git命令行

step2:绑定用户。

以GitHub为例,下面的xxxxx填入你的GitHub的账户名以及邮箱。

git config --global user.name "xxxxx"
git config --global user.email "xxxxx"

报错 "user.name has multiple values" 的解决办法: 先查看

git config --list 

再修改name、email

git config --global --replace-all user.email "输入你的邮箱"     
git config --global --replace-all user.name "输入你的用户名"    

继续查看,修改成功。

git config --list 

step3:为Github账户设置SSH key

如果使用http上传,则跳过该步骤。

ssh-keygen -C '输入你的邮箱' -t rsa

把文件夹下的id_rsa.pub文件内容全部复制。打开github/gitlab账户设置,添加即可。

github的方法是点右上角头像 - setting - SSH and GPG keys - New SSH key) Alt

step4: 初始化本地仓库

git init

step5: 关联远程仓库

git remote add origin git@github.com:Stupid-Human/Blog.git

git@github.com:Stupid-Human/Blog.git 就是你的仓库地址(下同),寻找方法如下 Alt

如果出现错误:fatal:remote origin already exists,先清除一下关联关系:

git remote rm origin

再重新关联

git remote add origin git@github.com:Stupid-Human/Blog.git

检查关联是否已建立且正确:

git remote -v

step6: 获取远程库与本地同步合并

如果远程库与本地仓库不一致,必须做这一步,比如远程库不为空,本地仓库为空时就要做这一步。

git pull --rebase origin master

step7: 把当前分支master推送到远程

git push -u origin master

执行完之后如果无错误就上传成功了。

需要提示的是这里的 master 是 GitLab默认的分支,如果你本地的当前分支不是 master,就用git checkout master命令切换到master分支,如果你想用本地当前分支上传代码,则把上面两条命令里的 master 切换成你的当前分支名即可。

如果推送不成功,先pull一下,如果报错fatal: refusing to merge unrelated histories,说明本地和远端的git库是两个 根本不相干的 git 库, 然后本地要去推送到远端, 远端觉得这个本地库跟自己不相干,所以告知无法合并。解决方法:强制合并:

git pull origin master --allow-unrelated-histories

后面加上 --allow-unrelated-histories ,意思是把两段不相干的分支进行强行合并。

然后再将代码推送到远端。

step8:提交本地代码

本地仓库目录新建了一个你要上传的文件,或者进行了源代码的修改。需要提交时依次使用以下命令。

git add readme.txt   
git commit -m 'readme.txt'
git push 

本次修改是新建了readme.txt文件。如果有多个文件新建或者修改时,可以使用以下命令来实现批量提交。

git add .

git commit -m 后面引号内容的是本次提交的说明

删除的步骤

在github上我们是不能直接删除仓库的文件,我们只能通过终端命令来删除我们不想要的文件或者目录。 删除服务器文件/文件夹,本地保留。

git rm --cached -r useless
git commit -m "remove directory from remote repository"
git push