git

Git

Posted by jiang on July 19, 2019

tag

1
git tag -a v2.3.4  -m v2.3.4 

fetch

  • FETCH_HEAD: 是一个版本链接,记录在本地的一个文件中,指向着目前已经从远程仓库取下来的分支的末端版本。
  • git fetch:这将更新git remote 中所有的远程仓库所包含分支的最新commit-id, 将其记录到.git/FETCH_HEAD文件中
1
2
3
4
5
6
7
8
git fetch origin master:tmp 
//在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支
git diff tmp 
//来比较本地代码与刚刚从远程下载下来的代码的区别
git merge tmp
//合并temp分支到本地的master分支
git branch -d temp
//如果不想保留temp分支 可以用这步删除

pull

  • git pull : 首先,基于本地的FETCH_HEAD记录,比对本地的FETCH_HEAD记录与远程仓库的版本号,然后git fetch 获得当前指向的远程分支的后续版本的数据,然后再利用git merge将其与本地的当前分支合并。所以可以认为git pull是git fetch和git merge两个步骤的结合。
  • git pull的用法如下
1
git pull <远程主机名> <远程分支名>:<本地分支名>

branch

1
2
3
4
5
6
git branch    #本地版本
git branch -a #所有版本
git branch -r #远程版本
git branch dev #创建版本
git branch -d dev #删除版本
git branch -m dev co #版本重命名

checkout

1
2
3
4
5
git checkout filename #放弃文件修改
git checkout . #放弃当前文件夹下修改

git checkout master #切换分支
git checkout -b master #切换或者新建分支

reset

1
2
git reset --hard #退回上一个版本
git reset --hard commit_id #退回到指定版本

log

1
2
git log -10 #最近10个版本
git log --graph #树状显示

rebase

  • 相比merge不会多产生提交版本
1
2
3
git checkout dev
git rebase master #在dev上做master的衍合处理
git rebase --continue #继续处理

初始化远程仓库

git init 
git add .
git commit -m 'init'
curl -u '用户名:密码' https://api.github.com/user/repos -d '{"name":"仓库"}' 
git remote add origin https://github.com/用户名/仓库.git
git push origin master

移除文件跟踪

git rm -r -cached file

删除远程分支

1
git push origin --delete dev

强制覆盖分支

git push origin dev:master -f