git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
git config -- global user.name "Your Name"
git config -- global user.email "email@example.com"
//把当前目录变成Git可以管理的仓库
git init
//把文件添加到仓库
git add xxx
git add . //把当期文件夹下的全部文件添加入仓库
//把文件提交到仓库
git commit -m " 描述 "
//查看当前仓库的状态
git status
//查看文件的修改状态
git diff
git diff HEAD -- readme.txt //可以查看工作区和版本库里面最新版本的区别
//显示从最近到最远的提交日志
git log
git log -- pretty=oneline //显示简洁提交日志
//命令可以看到分支合并图。
git log --graph
//退回上一版本
git reset --hard HEAD^
git reset HEAD file //HEAD指向的版本就是当前版本,
因此,Git允许我们在版本的历史之间穿梭,
git reset --hard commit_id //可以把暂存区的修改撤销掉(unstage),重新放回工作区
//记录你的每一次命令
git reflog
//删除一个文件
git rm xxx
//还原文件
git checkout
//可以丢弃工作区的修改
git checkout -- file
//我们创建dev分支,然后切换到dev分支
git checkout -b dev
//下载 命令git clone克隆一个本地库
git clone http:xxx
//查看远程库的信息
git remote
//显示更详细的信息
git remote -v
//关联远程库 把本地仓库的内容推送到GitHub仓库
git remote add origin git@github.com:michaelliao/learngit.git
//推送内容
git push
git push -u origin master //推送master分支的所有内容
//下载内容
git pull //
先用git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送
//可以打一个新标签
git tag v1.0
git tag //查看所有标签
//可以创建带有说明的标签,用-a指定标签名,-m指定说明文字
git tag -a v0.1 -m "version 0.1 released" 1094ad
git tag -d v0.1 //删除标签
//可以看到说明文字
git show <tagname>
要推送某个标签到远程,使用命令
git push origin <tagname>
git push origin :refs/tags/<tagname> //可以删除一个远程标签
//查看分支
git branch
git branch -d dev //删除dev分支
如果要丢弃一个没有被合并过的分支,可以通过
git branch -D <name> 强行删除。
//创建分支
git checkout //命令加上-b参数表示创建并切换
//创建+切换分支
git switch
//创建并切换到新的dev分支
git switch -c dev
//直接切换到已有的master分支
git switch master
当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场;
在master分支上修复的bug,想要合并到当前dev分支,可以用
git cherry-pick <commit>
把bug提交的修改“复制”到当前分支,避免重复劳动。
ssh-keygen -t rsa -C "youremail@example.com" //创建SSH Key id_rsa是私钥,
私钥不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
查看远程库信息,
git remote -v
本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支,使用
git push origin branch-name
,如果推送失败,先用git pull抓取远程的新提交;
在本地创建和远程分支对应的分支,使用
git checkout -b branch-name origin/branch-name
,本地和远程分支的名称最好一致;
建立本地分支和远程分支的关联,使用
git branch --set-upstream branch-name origin/branch-name;
从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。