GitHub入门与实践

2018.8.15 星期三 9:44

GitHub入门与实践:20170520
git指令总结: 20170531

mkdir file
cd file
git init
git status
git add
git commit -m
git commit -am
git log (–pretty=short,text,-p) 仓库中提交的日志
git diff 查看工作树、暂存区、最新提交之间的差别
1查看当前工作树与暂存区的差别。
(2HEAD,查看工作树和最新提交的差别,HEAD 是指向当前分支中最新一次提交
的指针。)

git branch——显示分支一览表
git checkout -b——创建、切换分支
git checkout master 切换到 master 分支
git checkout - 切换回上一个分支

git merge——合并分支
git merge –no-ff feature-A

git log –graph——以图表形式查看分支

git reflog 查看当前仓库执行过的操作的日志。
git reset——回溯历史版本
git reset –hard fd0cbf0d4a25f747230694d95cac1be72d33441d
回溯和推进其实是相同的操作—自己注解

git commit –amend——修改上一条提交信息
git rebase -i——压缩历史
git rebase -i HEAD~2 更改历史
可以选定当前分支中包含
HEAD(最新提交)在内的两个最新历史记录为对象,并在编辑器中打开。
(将 6fba227 左侧的 pick 部分删除,改写为 fixup。
pick 7a34294 Add feature-C
fixup 6fba227 Fix typo)

git remote add——添加远程仓库
git push——推送至远程仓库
git push -u origin master
1像这样执行 git push命令,当前分支的内容就会被推送给远程仓库origin 的 master分支。
-u参数可以在推送的同时,将origin仓库的master分支设置为本地仓库当前分支的 upstream(上游) 。
2添加了这个参数,将来运行 git pull命令从远程仓库获取内容时,本地仓库的这个分支就可
以直接从 origin 的 master 分支获取内容,省去了另外添加参数的麻烦
执行该操作后,当前本地仓库 master 分支的内容将会被推送到
GitHub 的远程仓库中。

$ git push -u origin feature-D 推送至 master 以外的分支

git clone——获取远程仓库
git checkout -b feature-D origin/feature-D

git pull——获取最新的远程仓库分支
git pull origin feature-D 将本地的 feature-D 分支更新到最新状态。

第一部分
一、git remote
1、git remote -v 查看远程状态
2、git remote add upstream 源库的clone地址
3、git remote rm vnt5901 删除

( 到.git/refs/remotes目录下去找这个分支信息,删掉)
( 到.git/refs/heads 目录下是分支,可以删掉或者删除分支操作)

$ git remote show origin

二、git branch
$ git branch 查看本地分支
$ git branch -a 查看本地和远程分支
$ git branch test 创建分支
$ git checkout test 切换分支到test
$ git branch -d xxxxx 删除本地分支

$ git checkout -b test 创建并切换
$ git branch -av

三、git merge
git merge upstream/master

四、git push 和commit-id, .git/FETCH_HEAD文件
git push origin master

  1. git fetch
    →→ 这将更新git remote 中所有的远程repo 所包含分支的最新commit-id, 将其记录到.git/FETCH_HEAD文件中
      2. git fetch remote_repo
    →→ 这将更新名称为remote_repo 的远程repo上的所有branch的最新commit-id,将其记录。
      3. git fetch remote_repo remote_branch_name
    →→ 这将这将更新名称为remote_repo 的远程repo上的分支: remote_branch_name
      4. git fetch remote_repo remote_branch_name:local_branch_name
    →→ 这将这将更新名称为remote_repo 的远程repo上的分支: remote_branch_name ,并在本地创建local_branch_name 本地分支保存远端分支的所有数据。

git fetch -p

五、git pull 的运行过程:
  git pull : 首先,基于本地的FETCH_HEAD记录,比对本地的FETCH_HEAD记录与远程仓库的版本号,
然后git fetch 获得当前指向的远程分支的后续版本的数据,
然后再利用git merge将其与本地的当前分支合并。

第二部分
github下fork后如何同步源库的新更新内容?
步骤:

1使用 查看远程状态
git remote -v

2给 fork 添加源库的clone地址

git remote add upstream 源库的clone地址

3再次查看状态确认是否配置成功

4从上源仓库 fetch 分支和提交点,并会被存储在一个本地分支 upstream
/ 而不是origin /

git fetch upstream

5切换到本地分支
把 upstream/分支 分支合并到本地对应的分支上,这样就完成了同步,
并且不会丢掉本地修改的内容,比如master分支的。

git merge upstream/master

6 push

git push origin master

第三部分
git fetch origin master
git log -p master..origin/master
git merge origin/master

上述过程其实可以用以下更清晰的方式来进行:

git fetch origin master:tmp
git diff tmp
git merge tmp

knowledge is no pay,reward is kindness
0%