实习-git

2018/07/11

参考:git-廖雪峰的官方网站

版本回退:

从最近到最远的提交日志:git log
 如果嫌输出信息太多,可以加上--pretty=oneline

git使用HEAD表示当前版本,上一个版本就是HEAD^,上上个版本就是HEAD^^,很多个版本就是HEAD~n
 命令:git reset --hard HEAD^

从过去回到未来:git reset --hard 版本号(版本号不需要写全,写前几位即可)

git reflog用来记录每一次命令

撤销修改:

撤销工作区:git checkout --filename
 撤销提交到暂存区的:git reset HEAD filename

删除文件:

删掉提交到版本库的文件:git rm filename
 然后:git commit -m "remove filename"

工作区误删:
 从版本库替换工作区:git checkout --filename

分支管理:

创建dev分支,然后切换:
git checkout -b dev
 相当于以下两条命令:
  git branch dev
  git checkout dev

查看分支:
git branch;当前分支前面会标一个*
git branch -a:查看远程分支

切换回master分支:git checkout master

把dev分支的工作成果合并到master分支上:git merge dev

删除分支:git branch -d dev

查看分支合并图:git log --graph

分支合并策略:合并分支时加上--no-off就可以使用普通模式合并合并后的历史有分支

BUG分支:
 工作途中需要修复bug,可以把当前工作储藏起来git stash
 恢复:两种方式
  git stash apply:stash内容没有删除:git stash drop
  git stash pop恢复的同时把stash内容删除

feature分支:添加新功能
 丢弃一个没有合并的分支(强行删除):git branch -D name

多人协作:远程仓储的默认名称是origin
 查看远程仓库的信息:git remote或者git remote -v
 推送分支:把该分支上的所有本地提交到远程库,推送时要指定本地分支

推送master分支:git push origin master
如果要推送其他分支,比如dev:git push origin dev
那些需要推送到远程:
 master是主分支,要时刻与远程同步
 dev是开发分支,团队成员都需要在上面工作,需要同步
 bug分支只用于本地修复bug,不需要
 freature分支是否需要,取决于自己

因此,多人协作的工作模式通常是这样:
 首先,可以试图用git push origin 推送自己的修改;
 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
 如果合并有冲突,则解决冲突,并在本地提交;
 没有冲突或者解决掉冲突后,再用git push origin 推送就能成功!
 如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to origin/

标签管理:

创建标签:git tag name
 查看所有标签:git tag
对某一个commit id打标签:git tag name id
 标签不是按时间顺序的,而是按字母顺序
查看标签信息:git show tagname
创建带有说明的标签:-a制定标签名,-m指定说明文字:git tag -a name -m "info" id
删除标签:git tag -d name
推送:git push origin tagname
删除远程标签(先删本地):git push origin:/addr/tagname

你可能感兴趣的:(实习-git)