最近刚开始学习git,总结一下git的各个命令,方便以后查阅。
学习环境:windows10
参考链接:
- Pro Git(中文版)http://git.oschina.net/progit/
- 沉浸式学 Githttp://igit.linuxtoy.org/contents.html
1. git的安装及初始配置
1.1 git 安装
windows下安装git很方便,github上提供了安装包,链接: http://msysgit.github.com/
1.2 git 初始化配置
1.2.1 配置用户名和户邮箱:
git config --global user.name "deng wen"
git config --global user.email 156XXXXXXX@163.com
1.2.2 查看初始配置:
git config --list
2.git的基础命令
2.1 新建仓库
Git 新建项目仓库的方法有两种。分别为:
2.1.1 第一种:在现存的目录下,用如下命令得到一个.git仓库目录,资源对应添加到其中:
git init
2.1.2 第二种:从已有的 Git 仓库克隆出一个新的镜像仓库来。[URL] 如:http://uestclab307.kmdns.net:808/dengwen/SAIC_SecMonitor.git,mygitname可省略:
git clone [URL] mygitname
2.2 文件基本处理
2.2.1 检查当前文件状态:
git status
2.2.2 将新文件或更新文件加入跟踪:
git add filename
git add —A //将所有新文件一次加入跟踪
git checkout -- filename // 对所做的更改进行忽略
git reset HEAD filename //撤销加入跟踪的文件
2.2.3 文件提交:
git commit —m "your comment" //-m表示注释
git commit --amend //撤销刚做的提交
git commit —a //所有跟踪文件一次提交
2.2.4 删除文件:
git rm --cached filename //跟踪目录删除、本地不删除
git rm -f filename //跟踪目录、本地目录皆删除:
2.2.5 在仓库中移动文件:
git mv file_from file_to
2.2.6 查看提交历史,- -pretty按固定格式显示,--graph 选项用 ASCII 字符串形象地展示了每个提交所在的分支及其分化衍合情况:
git log
git log --pretty=format:"%h - %an, %ar : %s"
git log --pretty=format:"%h %s" --graph
选项 说明
%H 提交对象(commit)的完整哈希字串
%h 提交对象的简短哈希字串
%T 树对象(tree)的完整哈希字串
%t 树对象的简短哈希字串
%P 父对象(parent)的完整哈希字串
%p 父对象的简短哈希字串
%an 作者(author)的名字
%ae 作者的电子邮件地址
%ad 作者修订日期(可以用 -date= 选项定制格式)
%ar 作者修订日期,按多久以前的方式显示
%cn 提交者(committer)的名字
%ce 提交者的电子邮件地址
%cd 提交日期
%cr 提交日期,按多久以前的方式显示
%s 提交说明
2.3 远程仓库的使用
2.3.1 查看当前的远程库,-v 选项显示对应的克隆地址:
git remote //查看当前仓库对应的远程库,一般为origin
git remote -v //查看当前仓库对应的远程库及相应地址
2.3.2 远程仓库处理:
git remote add yourname [url] //yourname是你的本地仓库名,相当于赋值yourname为URL
git fetch yourname //从远程仓库抓取数据到本地,到如果要查看需要合并到当前分支
git remote show [remote-name] //查看远程仓库信息,如显示了有哪些远端分支还没有同步到本地等
git remote rename old-name new-name //重命名
git remote rm paul //删除
2.4 标签
2.4.1 新建标签:
git tag //查看已有标签
git tag -a yourtagname -m 'your comment' //打标签
git show yourtagname //查看版本信息
git tag -a yourtagname hist //后期加标签,hist表校验和
2.4.2 标签远程共享:
git push origin yourtagname //推送标签
git push origin --tags //推送所有标签
2.5 Git 命令别名
2.5.1 简写git命令:
git config --global alias.shortname gitcommandname
eg: git config --global alias.unstage 'reset HEAD'
git unstage filename //撤销加入跟踪的文件
3.git分支处理
3.1 Git 查看分支
3.1.1 查看分支:
git branch
git branch -a //查看所有分支,包括远程分支
git branch -v //查看分支最后一个提交对象的信息
git branch --merged/--no--merge //查看已经(或尚未)合并的分支
3.2 Git 分支切换、合并和删除
3.2.1 切换分支:
git branch branchname //在当前分支下创建分支
git checkout branchname //切换到已有的分支
git checkout -b 'branchname' //创建分支并切换
3.2.2 合并分支:
git merge branchname //将分支合并到当前分支
3.2.3 删除分支:
git branch -d branchname //删除分支
3.3 Git 远程分支处理
3.3.1 跟踪远程分支:
git checkout -b [分支名] [远程仓库名]/[分支名] //跟踪分支是一种和某个远程分支有直接联系的本地分支
git pull //新建跟踪分支后用该命令直接将远程分支合并进来
git push //将本地跟踪分支推送到远程分支
git push --set-upstream [远程仓库名] [分支名] //将当前的分支设置为跟踪某个远程分支
3.3.2 抓取和合并远程分支:
git fetch origin //同步远程origin/master数据到本地,指针移到它最新的位置上。
git merge origin/remotename //将远程分支的内容合并到当前分支,用于远程分支已同步而又不能直接访问时。
3.3.3 推送分支和删除远程分支:
git push origin name1:name2 //把本地分支name1推送到远程分支name2中,如果远程仓库没有这个分支,会生成这样一个新的分支。用这种方式可以远程创建分支。
git push origin name //将本地分支推到远程同名分支。
git push origin :remotename //把空白远程远程分支,即删除远程分支。
这些就是基本的git命令,更多待进一步学习