git笔记 -- 从github的日常使用

0、最简单的方法

     1、在github或gitlab上创建一个新项目。

     2、将空仓库直接git clone下来(https方式),此时环境配好。

     3、直接pull/push即可。

说明:之前配置ssh方式来访问公司搭建gitlab一直不成功(github成功)暂时未找到问题,只能先用这个方法(https方式)解决。

1、前期配置

    1、先在官网创建相应的项目仓库。

    2、生成ssh密钥

ssh-keygen -C 'your@email.address' -t rsa

可以一直回车,使用默认值

密钥保存位置,其中.pub是公钥,要在github上(头像 >> Settings >> SSH and GPG keys)添加ssh key(公钥里面的内容)

添加ssh key界面

 

# 添加私钥命令
ssh-add /root/.ssh/id_rsa

# 如果报错
Could not open a connection to your authentication agent.

# 解决
ssh-agent bash

# 再输入一遍添加私钥命令即可
ssh-add /root/.ssh/id_rsa

设置用户名和邮箱,注意 user.name 即 www.github.com/{user.name},未设置此项可能无法计算 contribution,查看 commit 日志发现是系统用户名提交的 。 

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

2、下载

 git clone http://git.XXXX.com/XXX/lx_express.git  # 如果是私有仓会提醒输入账号密码

3、上传

进入本地相应项目文件夹(与第一步创建的仓库名一致)

git init
git add .
git commit -m 'first commit'
# 设定远程仓库
git remote add origin git@github.com:XXXX/XXXXX.git
# 提交到远程
git push origin master
# 更新本地代码
git pull 

这是刚建的仓库里面有我的文件了。 

4、遇到的问题

问题1:

error: Your local changes to the following files would be overwritten by merge:
	main.py
Please, commit your changes or stash them before you can merge.
Aborting

说明:

       出现这个问题的原因是其他人修改了a文件并提交到版本库中去了,而你本地也修改了a文件,这时候你进行git pull操作就好出现冲突了,解决方法,保存修改过的本地代码到git栈中,然后更新线上内容,等需要再把修改的内容弹出。


git stash  # 将工作区恢复到上次提交的内容,同时备份本地所做的修改
git pull # 可以正常git pull
git stash pop # git pull完成后,执行git stash pop将之前本地做的修改应用到当前工作区

命令说明:
git stash  # 备份当前的工作区的内容,从上一次提交中读取相关内容,让工作区保证和上次提交的内容一致。
#同时,将当前修改过的工作区内容保存到Git栈中。

git pull  # 拉取服务器上的代码;
git stash pop  # 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list  # 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear  #  清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。

转自:https://www.jianshu.com/p/920ad324fe64

问题2:部分文件夹后面接了一个@,即导向

原因:这个文件夹之前也是一个git项目,里面还保存了git相关信息。

解决:我是重新创建了仓库,同时将此文件夹的git信息都删了,只保留代码文件,提交即可。

问题3:insufficient permission for adding an object to repository database .git/objects insufficient permission for adding an object to repository database .git/objects Error building trees

权限问题,直接在项目根目录

sudo chmod 777 -R .git/objects

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值