git 生成 ssh key

ssh-keygen -t rsa -C "youremail@example.com"

 生成目录:c盘->用户->自己的用户名->.ssh

将命令复制到gitlab账号上

登录gitlab。点击头像打开settings -> SSH keys 把生成好的公钥id_rsa.pub里面的内容放进key输入框中,再为当前的key起一个title来区分每个key。点击Add Key即可。

git推送

cd project
git init
git remote add origin <remote>
git add .
git commit -m "first commit"
git push -u origin master
  • 第一次git需要输入用户名和密码,按提示输入即可;
  • 没安装git的话会弹出提示,按提示安装就行;

git拉取

cd project
git init
git remote add origin <remote>
git pull <remote> <branch>
  • remote是http地址,branch就是master

 如果commit时候遇到如下类似情况:
No ESLint configuration found.
可以通过在命令中添加--no-verify 参数来跳过

git commit -m "first commit" --no-verify

 

其他命令

//设置分支
git branch --set-upstream-to=origin/master master

//回退版本
git reset --hard 版本号

//查看remote仓库
git remote -v

//清除remote仓库
git remote remove origin

代码冲突

pull报错

如果希望保留所做的改动,仅仅并入新配置项, 处理方法如下:

git stash
git pull
git stash pop

然后可以使用git diff -w +文件名 来确认代码自动合并的情况.

反过来,如果希望用代码库中的文件完全覆盖本地工作版本. 方法如下:

git reset --hard
git pull

其中git reset是针对版本,如果想针对文件回退本地修改,使用

git checkout HEAD file/to/restore

 

checkout 或者 rebase报错

Please move or remove them before you can switch branches.
Aborting

执行:

git clean -d -fx

 push报错

有时 push 代码的时候, 出现提示:

$ git push
To ../remote/  
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to '../remote/'

问题 (Non-fast-forward) 的出现原因在于: git remote 仓库中已经有一部分代码, 所以它不允许你直接把你的代码覆盖上去. 于是你有 2 个选择方式:

  • 强推, 即利用强覆盖方式用你本地的代码替代 git 仓库内的内容
git push -f
  • 或者先把 git 的东西 fetch 到你本地然后 merge 后再 push 
git fetch
git merge

 git commit之后不想push

远程master分支保持一致,有个方法:

git reset --hard origin/master

不过,慎用,因为是–hard,,,

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐