Git基础命令:
用户定义:
git config –global user.name “YourName”
git config –global userl.email “email@host”
创建git工作目录:
mkdir FileName #创建工作目录
cd FileName #进入工作区
初始化git本地仓库:
git init #把当前目录变成git本地管理仓库
把工作文件添加到仓库:
git add FileName #把文件添加到暂存区
git commit –m “message” #把暂存区里的文件添加到git仓库中 –m记录信息
状态查看指令:
git status #查看仓库当前状态
git diff FileName #查看文件修改内容
git diff [Commit_id_form] .. [Commit_id_to] #对比两个版本的不同
git log #查看历史记录
git log –pretty=oneline #单行显示历史记录信息
git reflog #查看之前使用过的命令
退回之前的版本:
git reset --hard HEAD^ #退回上一个版本
git reset –hard HEAD~n #退回到n个版本之前
git reset –hard HEAD Commit_id #退回到提交的id版本
文件撤销:
git checkout – FileName #撤销工作区文件,在未添加到暂存区之前
git reset HEAD FileName #暂存区里的类容被修改后使用,然后使用上一条命令
文件删除:
git rm FileName #在版本库中删除文件,同时在工作空间中也删除
git commit –m “message” #删除后需要提交删除
git checkout – FileName #还原在工作区误删除或者修改的文件
创建ssh密钥:
ssh –keygen –t rsa –C “YourMail @host”
远程仓库操作:
git remote add [email protected]:username/urlname #远程没有仓库时,把本地库的类容推送到远程库,并产生关联
git clone [email protected]:username/urlname #将远程库克隆岛本地
git push –u origin master #首次把本地库的所有内容推送到远程库产生关联,-u表示参数关联
git push origin master #在产生关联以后,推送修改内容
开发分支的创建及使用:
git checkout –b BranchName #创建一个分支,并指向这个分支
git branch BranchName #创建一个分支
git checkout BranchName #切换到某个分支
git branch #查看当前分支
git merge BranchName #把BranchName 分支合并到当前分支
git branch –d BranchName #删除分支
git log –graph –pretty=oneline–abbrev-commit #查看分支合并图单行显示
git log –graph #查看分支合并图
git branch –D BranchName #强行删除一个没有被合并过的分支
禁快进模式(Fast-forward。好处:可以提交一次信息备注):
git merge –no-ff –m “message”BranchName #禁Fast-forward合并方法,可见分支信息
现场存储命令:
git stash #把当前分支,把当前的工作现场“储藏”,等以后恢复现场继续工作
git stash list # 查看“储藏”的工作现场
git stash apply #恢复工作现场,stash类容并不删除
git stash drop #删除工作现场
git stash pop #恢复并删除工作现场
git stash apply stash@{n} #恢复指定的工作现场
远程库提交指令:
git remote #查看远程库信息
git remote –v #查看更详细的信息
git push origin BranchName #推送到远程对应分支上
git checkout –b BranchNameorigin/BranchName #创建远程分支到本地分支
git pull #抓取最新的提交
git branch –set-upstream BranchNameorigin/BranchName #设置本地分支和远程分支的关联,解决关联(连接)问题“no tracking information”
给项目打标签命令:
git tag TagName #打一个新的标签
git tag #查看所有标签
git tag TagName Commit_id #对指定Commit_id 版本打标签
git showTagName #查看标签的详细信息
git tag –aTagName –m “message” Commit_id #-a指定标签名,-m信息,创建指定版本带说么的标签
git tag –sTagName –m “message” Commit_id #-s用私钥签名一个标签
git tag –dTagName #删除一个标签
git push originTagName #推送指定标签到远程
git push origin–tags #推送所有标签到远程
删除远程标签:
git tag –dTagName
git push origin:refs/tags/TagName
git的辅助功能:
git config –globalcolor.ui true #让git通过颜色区分
git的配置文件放于.git/config 文件中
git config–global alias.ShortName FucthionOrder #给命令取别名,简化命令
git config--global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset-%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'--abbrev-commit" #非常好用的一句话,之后输入gitlg就能更直观的查看历史记录
文件恢复操作指令:
git checkoutCommit_id FileName #把文件还原到版本号Commit_id的版本
git revertHEAD #提交当前版本
git revertCommit_id #提交Commit_id 版本
创建裸仓:
ssh user@host
git init –bare /path/to/repo.git
克隆中央仓:
git clone URL
提交文件:
git push originmaster
提交发生冲突:
git pull –rebaseorigin master #--rebase把提交移到同步了中央仓修改后master分支的顶部
同步后:
git add
git rebase–continue
出错,回归到--rebase抓取版本:
git rebase–abort
合并上传:
gitpush origin master
创建功能分支:
git checkout –bFunctionBranch master
开发阶段性提交:
git push –u originFunctionBranch #-u设置本地分支去跟踪远程的对应分支
完成功能开发:
git push
功能发布:
git checkoutmaster
git pull
git pull originFunctionBranch
git push
git mergeFunctionBranch
创建一个develop分支:
git branchdevelop
git push –uorigin develop
git clonessh://user@host /path/to/repo.git
git checkout –bdevelop origin/develop
开发新功能:
git checkout –bFunctionBranch develop
完成功能开发:
git pull origindevelop
git checkoutdevelop
git mergeFunctionBranch
git push
git branch –dFunctionBranch
准备发布:
git checkout –bTagBranch develop
完成发布:
git checkoutmaster
git mergeTagBranch
git push
git checkoutdevelop
git mergeTagBranch
git push
git branch –dTagBranch
git tag –aTagName –m “message” master
git push –tags
用户发现bug:
git checkout – bBugBranch master
#Fix the bug
git checkoutmaster
git mergeBugBranch
git push
git checkoutdevelop
git mergeBugBranch
git push
git branch –dBugBranch
初始化正式仓库:
ssh user@host
git init –bare/path/to/repo.git
开发者克隆自己fork出来的仓库:
git clone URL
git remote addupstream URL #添加上游(upstream)正式仓库
开发者开发自己的功能:
git checkout –bFunctionName
#Edit some code
git commit –a –m“message” #-a,上传所有工作区修改至git仓库
提交:
git pullupstream master
开发者发布自己的功能:
git push originFunctionBranch
项目维护者集成开发者的功能:
git fetchDevelopURL FunctionBranch
git checkoutmaster
git mergeFETCH_HEAD
git push originmaster
开发者和正式仓做同步:
git pull upstream master