Git & Github 学习笔记

git diff _old_file new_file_
可以比较两个Repository中两个文件的不同,但需要文件的commit ID。

working directory staging area Repository
当前工作目录 缓冲区 代码库
git add git commit

git diff:可以比较所有working directory(当前工作区)中文件前后的不同,不需要文件ID。
git diff --staged: 比较staging area和最新的(the most recent)commit中文件的不同,同样不需要文件ID。
git reset --hard撤回working directory和staging area所有没有commit的文件更改。

git clone _file_ID/URL_
可以根据file_ID或者URL克隆git上的文件,同时还可以拷贝下文件的修改历史,即log。

git log
显示文件的修改历史,置顶的文件是最新的。
git log --graph --oneline显示各个版本的分支。

git checkout file_ID
将文件还原至只某个历史版本,file_ID可以从git log中查找。

git init
创建一个git库,生成.git文件。

ls -a
查看隐藏目录、文件。

git status
显示git repository的状态。

git add file_name
将要commit的文件逐个添加到staging area中,这样可以不断地缓存文件,但最终只需要提交一次。
如果你意外地将某个文件添加到暂存区中,可以使用 git reset 删除它,e.g.git reset lesson_2_reflections.txt

git commit
为staging area缓冲区的文件创建一个commit。该命令输入后会跳出之前设置的默认编辑器,在最顶一行,添加commit中的对文件修改的简要描述,这很重要,便于今后回查代码的更改。

git branch
查看分支内容,即有哪些分支。目前所在处的分支前会有一个*符号。
git branch branch_name,通过在命令后添加一个创建的分支的名称,创建一个分支。
如果要跳转到哪个分支上,使用git checkout branch_name就可以了。

git merge branch_name
首先要使用checkout指定一个分支,然后输入需要合并进来的分支名称。注:也可以同时合并多于2个分支的情况,比如处于branch1,需要将branch2,branch3也同时合并进来,则先执行checkout branch1,再使用git merge branch2 branch3
使用原始版本合并文件,当得知原始文件后,之后被删除/添加的行将被删除/添加,一直保留的行将被保留。
git merge branch_name1 branch_name2将branch_name1,branch_name2两个分支合并
git show commit_id,使用时机:在合并分支之后,想要查看某个版本与其父级之前的变动,但无法得知其父级id时,使用git show命令。会显示该commit与其父版本之前的差别,而无需输入父级id。

git remote add remote_repository_name(自己命名的) https://****
在本地的git上添加一个远程的repository.
git pull remote_repository_name branch_name
将远程库上的分支从网站上拉(pull,同步与合并)回本地。
git push remote_repository_name branch_name
将本地的分支同步(push,推)到远程库上。
git fetch remote_repository_name branch_name
将远程库上的分支从网站上复制回本地,但不会合并。
Note: pull = fetch + merge

Updating a Cross-Repository Pull Request

  • add the original repository as a remote in your clone, named "upstream".
    在你的本地git中的添加一个名为upstream的远程库,也就是你fork的他人的库。
  • pull the master branch from the original repository into your clone master: means "update your clone master".
    将远程库中的最新的master版本更新到你的本地,替换自己的master分支。
  • merge the master branch into your change branch, the not-master branch(非master分支). and fix the conflicts in your local machine.
    在本地解决最新master分支与自己的change分支之前的代码冲突。
  • push your change branch to your fork.
    将消除冲突的代码提交到自己fork的github库中,并向他人发出pull request的请求。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Git常用语法 [TOC] Git简介 描述 ​ Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,...
    君惜丶阅读 3,598评论 0 13
  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,721评论 9 163
  • 紫雨(作者:不详) 紫炉轻烟梦里香, 雨落思卿恨夜长。 嫣容笑貌看不尽, 然已痴心宁断肠。
    紫雨true阅读 543评论 5 7
  • 昨天和老朋友欢聚一堂,为了增添一点乐趣,带去了沟通卡牌,大家顿时对神秘的卡牌产生了浓厚的兴趣,希望通过卡牌的抽取能...
    心荷海燕阅读 557评论 2 2
  • 身边人都说我有个好老公,我也知道他很好,但是别人问我他到底好在哪,好多都记不得了,还是记下来吧,等老的走不动了,看...
    蒹葭苍苍子衿悠悠阅读 154评论 0 0