Git
作为如今热门的代码仓库管理软件,值得我们花费一些时间来学习使用它,熟练的使用Git
有助于我们对于我们代码仓库的持续性维护管理和对代码迭代更新的总结和记录。个人推荐可以先看看前辈整合的Git操作手册(官方的原版和网上的中文版都不错),然后可以通过一个小工程通过GitHub
的工程提交维护来了解简单的使用方法,基本就可以做到Git
的入门使用了,而这对于大部分的开发者也就足够使用了。
推荐
常见命令
$git init //初始化仓库
$git init --bare #奖励裸库,无法操作,只负责版本管理
$git remote:#列出所有的远程分支
$git clone <fileoath>:#拷贝项目到本地
$git commit -a -m “ ”:#已经add了一个或多个文件过之后,然后修改了这些文件,就可以使用该命令进行提交。
$git config -l #查看git 的全局配置信息
$git log #查看已提交信息
$git log -p filename #查看某一文件的具体提交信息
本地回滚:
$git reset --hard commit-id #回滚到commit-id,讲commit-id之后提交的commit都去除
$git reset --hard HEAD~3 #将最近3次的提交回滚
# 远程代码库回滚:
# 原理:先将本地分支退回到某个commit,删除远程分支,再重新push本地分支
$git checkout the_branch
$git pull
$git branch the_branch_backup #备份一下这个分支当前的情况
$git reset --hard the_commit_id #把the_branch本地回滚到the_commit_id
$git push origin :the_branch #删除远程 the_branch
$git push origin the_branch #用回滚后的本地分支重新建立远程分支
$git push origin :the_branch_backup #如果前面都成功了,删除这个备份分支
#分支操作
$git branch -a #查看远程分支
$git branch #查看本地分支
$git branch test #创建分支
$git checkout test #切换分支
$git branch -d test #删除本地分支
#配置操作
$git config --list #查看所有配置信息
$git config --global --list #查看当前用户的配置信息
$git config user.name #查看配置的用户名
$git help config #查看config的帮助信息
$git config --help #查看config 的帮助信息
$man git-config #查看config的帮助信息
$git diff #查看当前已修改文件但还未提交文件与暂存区的文件的区别
$git diff cached #查看暂存区的文件与上次提交前的区别
$git diff --staged #查看暂存区的文件与上次提交前的区别
$git mv a.txt b.txt #重命名,将a.txt重命名为b.txt
$git log #提交信息打印,简要
$git log -p #详细的差异信息打印
$git log -2 #近两次的差异信息打印
$git log --stat #仅显示简要的增改行数统计
$git log --pretty=oneline #每行显示一个提交
$git log --pretty=short
$git log --pretty=email #只显示每次提交的email
$git log --pretty=format:"%g - %an, %ar : %s" #指定显示的记录格式
#%H 提交对象(commit)的完整哈希字串%h 提交对象的简短哈希字串%T 树对象(tree)的完整哈希字串%t 树对象的简短哈希字串%P 父对象(parent)的完整哈希字串%p 父对象的简短哈希字串%an 作者(author)的名字%ae 作者的电子邮件地址%ad 作者修订日期(可以用-date=选项定制格式)%ar 作者修订日期,按多久以前的方式显示%cn 提交者(committer)的名字%ce 提交者的电子邮件地址%cd 提交日期%cr 提交日期,按多久以前的方式显示%s 提交说明
$git commit --amend #撤销刚才的提交操作
$git reset HEAD filename #取消暂存
$git remote #查看当前有哪些远程分支
$git remote -v #显示远程库对应的地址
$git remote add remotename git://address/project.git #添加远程分支remotename
$git fetch remote_name #从远程库抓取数据到本地,抓取本地库没有的数据
#fetch 命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并。
$git pull remote_name master #从远程库抓取数据到本地,并合并到master分支
$git push remote_name branch_name #将本地数据推送到远程仓库
$git remote show origin #查看远程仓库origin的详细信息
$git remote rename pd paul #修改某个远程仓库在本地的简称
$git remote rm pd #删除远程分支pd
$git tag #列出现有标签
$git tag -l 'v1.4.*' #查找标签带有v.1.4.的所有标签
//add tag
$git tag -a version -m "description"
//delete tag
$git tag -d version
$git tag -a v1.1 -m "version tag" #新建一个包含附录的标签
$git show v1.1 #查看相应标签版本信息
$git config --global alias.aliasname checkout
$git aliasname #alias.aliasname 命名别称。可通过此方式给一些常用的命名设置新的名字达到相同的操作效果
$git checkout -b brancha #创建了一个分支branchea并切换到分支brancha
$git merge branch_name #合并当前分支和branch_name分支
$git branch -d branch_name #删除分支branch_name
$git branch -v #查看各分支最后一个提交对象的信息
$git branch --merge #查看那些分支已经被并入当前分支
$git branch --no-merge #查看尚未合并的分支
$git branch -D testing #强制删除testing分支
$git checkout -b serverfix origin/serverfix #以在远程分支的基础上分化出一个新的分支serverfix,其内容与远程分支一致
$git push origin :mybranch #再origin repository里面查找mybranch,删除它。用一个空的去更新它,就相当于删除了
$git push origin master:refs/for/mybranch #在local repository中找到名字为master的branch,用他去更新remote repository下面名字为mybranch的branch
$git rebase master #将master与当前分支不同的提交打补丁给当前分支,合并成一个新的对象
//git 放弃修改命令
git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态
git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。
git reset --hard HASH #返回到某个节点,不保留修改。
git reset --soft HASH #返回到某个节点。保留修改
//git checkout 远程分支
#git checkout -b develop origin/develop //heckout远程的dev分支,在本地起名为dev分支,并切换到本地的dev分支
#git checkout -a //查看所有branch,包括远程分支
#git checkout -av //查看所有分支,并显示最后一次的提交信息
#git clean -d -fx "" //强制删除已经被git忽略和未添加到git上的文件