Git使用心得

最近在使用git,遇到不少问题,这里总结一下,用作备忘。

1、git config 配置用户名和邮箱

git config是用来控制git外观和配置的命令,对于大多数人来说,常用到的就是:

git config --global user.name "username"

用以配置github账号

git config --global user.email xxx@example.com

用来配置github注册的邮箱

2、本地仓库和远程仓库的创建和关联

  1. 新建一个项目

如果你是新建项目的话,git建议的方式是现在github上建立远程仓库,然后通过git clone方式建立本地仓库。

  1. 项目已经存在

如果项目已经存在,那么要做的是用git将项目初始化为git本地仓库,并关联远程仓库,具体操作如下:

  • 将本地项目初始化并添加到本地仓库
cd python\test #切换到你项目根目录
git init    #将项目目录test初始化为本地仓库
git add .   #将当前目录下所有文件/文件夹添加到git暂存区,你也可以一个一个文件/文件夹添加
git commit "描述"   # 将暂存区内容提交到本地仓库,描述是对这次提交的简短注释
  • 创建远程仓库并关联

远程仓库的创建和新项目类似,不过需要注意的是不要生成readme.md文件,记得一定是生成空的远程仓库,下面有个例子会说明为什么。

远程仓库创建以后执行命令:

git remote add origin 仓库地址  #仓库地址是你要关联的远程仓库的链接
git push origin master  #将本地仓库origin master主分支推送到远程仓库

origin是git给远程库起的默认名称,如果有多个远程库,我们需要用不同的名称来标识不同的远程库。但是一般情况下都是用origin。
仓库地址
git remote add origin命令中的仓库地址常见有两种形式:

  • 1、https://github.com/username/repository_name.git 我们称作https地址

对于https地址,需要每次提交时候输入github账户和密码,不过可以用凭证助手来解决,操作如下:

git config --global credential.helper store #--global表示全局生效

这条命令输过以后,提交时候可以只输入一次就可以了。不过你的用户名和密码是明文保存在本地文件中的,具体自行百度。

  • 2、git@github.com:username/repository_name.git 我们称作ssh地址

SSH方式需要在github上添加ssh key。如果在windows下,可以打开git-bash.exe或 bash.exe。他们在git安装目录下面或者子目录下可以找到。使用下面的命令生成ssh key。

ssh-keygen -t rsa -C 'xxx@xxx.com' #-C 后面的是你邮箱地址

执行后得到两个文件id_rsa id_rsa.pub,windows下在C:\users\username\.ssh 文件夹下.。然后打开github网站并登陆,在
settings->SSH and GPG key -> new ssh key下,把id_ras.pub全部内容复制到key所提示的大框中,填写title,然后点击add ssh key按钮即可。推荐用notepad++之类打开 id_rsa.pub文件。

如果你使用了ssh地址,而没有添加ssh key,会报错的,一般提示如下:

The authenticity of host 'github.com ' can't be established

报这个错误原因还可能是你关联的远程仓库地址不正确,可以输入

git remote -v   #查看关联仓库的地址信息,如果有错误,可以
git remote remove origin  #删除关联
git remote add origin 仓库地址  #重新关联

仓库地址就是github处clone或者download处提供的地址,注意在你上传了ssh key之后,就可以在两种地址之间切换了。如下图:
仓库地址

常见错误

  • 没有合并远程仓库,提示代码如下:
error: failed to push some refs to 'https://github.com/username/repository_name'
	hint: Updates were rejected because the remote contains work that you do
	hint: not have locally. This is usually caused by another repository pushing
	hint: to the same ref. You may want to first integrate the remote changes
	hint: (e.g., 'git pull ...') before pushing again.
	hint: See the 'Note about fast-forwards' in 'git push --help' for details.

出现这个问题的原因是远程仓库和本地仓库不同步,一般可以这样:

git pull origin master #合并仓库,一般可以解决这个问题

如果上面命令也提示如下错误:

fatal: refusing to merge unrelated histories

网上查找说,这是因为远程仓库和本地仓库是两个独立仓库所导致的,如果是空仓库,或者clone建立本地仓库,就没这个问题。如果本地项目已经存在,而你又在创建远程仓库之后,添加了文件,比如创建了readme.md;或者手动上传了一些文件,就会出这个错误。下面命令可以解决

git pull origin master --allow-unrelated-histories
#然后执行
git push origin master  #就可以推送了。
  • fatal: remote origin already exists
    意思是git已经关联了远程仓库了。
git remote -v #查看已经关联的仓库
#如果关联仓库地址有问题可以
git remote rm origin #删除关联
git remote add origin 仓库地址  #重新关联来解决

后面遇到问题会不定时更新.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值