更新时间:2020-03-25 10:57:25浏览次数:1+次
本文针对Git常用的17个应用场景提供了简要的命令整理和必要的说明,可以让你快速上手Git。适用于从未接触Git的新手或有Git经验的同学,不适用于专家。讲解的顺序为从配置到创建再到使用,作为一个主线将这17个场景讲解完毕。重点是需要去动手操作,边看边练习,这样可以快速学会Git。而对于有Git经验的同学,本文可以作为一个工具手册备查或完整的梳理。
一、配置Git并创建目录
每一个Git客户端都需要一个地址,所以需要先配置好。加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。配置文件为隐藏文件。
仓库的配置文件路径:.git/config
用户的配置文件路径:系统的用户目录下的.gitconfig
配置用户信息:
git config --global user.name "名字"
git config --global user.email "邮箱地址"
创建库工作区目录(dos命令,Linux命令未列出,请自行对应):
mkdir 目录
cd 目录
二、初始化Git版本仓库
在上一步执行了切换目录cd命令,然后在这个目录下执行以下初始化命令。这样,这个目录就成为了Git版本仓库目录。
git init
三、将文件存入工作区目录
git add 文件名
git commit -m "版本提交说明"
git log [--pretty=oneline] [--graph] [--abbrev-commit]
git reflog
git status
git diff 提交ID -- 文件名
git checkout -- 文件名
git reset --hard HEAD
git reset HEAD 文件名
git reset --hard 提交ID (commit_id)
git rm 文件名
git ls-tree -l 提交ID暂存区文件名列表:
git ls-files暂存区文件详细信息列表:(先得到树ID,用前面得到的树ID来查看详细的文件列表信息)
git write-tree
git ls-tree 树ID
git remote add 远程库名称(本地显示) git@github.com:GitHub账号/GitHub库名.git
git push [-u] 远程库名称(本地显示) 本地库分支名(默认主分支为master)
git remote [-v]
git checkout -b 本地分支名 远程库名/远程库分支名将远程库克隆到本地库:
git clone git@github.com:GitHub账号/GitHub库名.git将远程库分支关联到本地库分支:
git branch --set-upstream-to=远程库名/远程库分支名 本地分支名拉取远程库分支:
git pull [远程库 远程分支]先将远程库分支和本地分支关联起来,然后就可以直接拉取远程库分支到本地分支了。拉取远程库分支到本地分支会自动进行合并。如果自动合并失败,就需要自己手动合并了。如果不设置关联分支,可以每次在pull的时候指定远程库和远程分支。合并冲突后,你需要将你本地的分支的内容进行处理,然后再在本地分支提交不冲突的版本,再次pull就可以自动合并了,然后可以将本地分支推送到远程分支。
git rebase
git remote rm 远程库名
git branch 分支名 (无分支名即查看分支列表,前面有*的为当前分支)切换分支:
git checkout 分支名创建并切换分支:
git checkout -b 分支名合并分支:
git merge 分支名 (将指定分支名的内容合并到当前分支)删除分支:
git branch -d 分支名 (强行删除用D)强制禁止执行Fast forward以保存合并记录:
git merge --no-ff -m '描述' 分支名
git stash查看快照列表:
git stash list恢复但不删除快照:
git stash apply stash编号删除快照:
git stash drop stash编号恢复且删除最新一个快照:
git stash pop
git tag打标签:
git tag -a 标签名 [-m "标签描述"] [commit_id(提交ID,不写则为最新的提交)]查看标签信息:
git show 标签名删除标签:
git tag -d 标签名标签推送到远程库:
git push 远程库名 标签名一次性推送所有本地标签到远程库:
git push 远程库名 --tags删除远程库标签要先删除本地标签,然后再远程删除:
git push 远程库名 :refs/tags/标签名
git check-ignore -v 文件名
git config --global alias.别名 真正的名称(如果包含空格,用引号括起来)删除别名,可以直接操作配置文件,将[alias]后的对应别名删除即可。
相关资讯