github学习手记

1. 安装配置

安装;配置

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
$ ssh-keygen -t rsa -C "your_email@youremail.com"

成功的话会在~/下生成.ssh文件夹,进去,打开id_rsa.pub,复制里面的key。

回到github上,进入 Account Settings(账户配置),左边选择SSH Keys,Add SSH Key,title随便填,粘贴在你电脑上生成的key。

验证:

$ ssh -T git@github.com

2.上传/克隆repository

进入要上传的仓库

$ git init //通过git init命令把这个目录变成Git可以管理的仓库
$ git remote add origin git@github.com:yourName/yourRepo.git

克隆

git clone /path/to/repository 
git clone username@host:/path/to/repository
$ git remote add origin git@github.com:michaelliao/learngit.git
$ git push -u origin master

3. 修改

$ git add readme.txt
$ git status
$ git diff
$ git commit -m "wrote a readme file"

4. 回退

$ git log #显示从最近到最远的提交日志

在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

$ git reset --hard HEAD^
$ git reset --hard 1094a

$ git reflog # 记录你的每一次命令

$ git checkout -- file #丢弃工作区的修改

命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commitgit add时的状态。

 

$ git reset HEAD readme.txt

用命令git reset HEAD <file>可以把暂存区的修改撤销掉(unstage),重新放回工作区

 

5. 分支管理

$ git checkout -b dev
Switched to a new branch 'dev'

$ git branch dev
$ git checkout dev
Switched to branch 'dev'

$ git branch
* dev # 当前分支
  master

$ git branch -d dev
Deleted branch dev (was b17d20e).


$ git merge dev

git merge命令用于合并指定分支到当前分支。

$ git branch --set-upstream-to=origin/dev dev
Branch 'dev' set up to track remote branch 'dev' from 'origin'.

$ git pull
Auto-merging env.txt
CONFLICT (add/add): Merge conflict in env.txt
Automatic merge failed; fix conflicts and then commit the result.

 

因此,多人协作的工作模式通常是这样:

  1. 首先,可以试图用git push origin <branch-name>推送自己的修改;

  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

  3. 如果合并有冲突,则解决冲突,并在本地提交;

  4. 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!

如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>

 

 

参考资料:

https://www.liaoxuefeng.com/wiki/896043488029600

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值