github学习手记

1. 安装配置

安装;配置

$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
$ ssh-keygen -t rsa -C "[email protected]"

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

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

验证:

$ ssh -T [email protected]

2.上传/克隆repository

进入要上传的仓库

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

克隆

git clone /path/to/repository 
git clone username@host:/path/to/repository
$ git remote add origin [email protected]: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 可以把暂存区的修改撤销掉(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 推送自己的修改;

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

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

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

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

 

 

参考资料:

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

 

 

你可能感兴趣的:(github学习手记)