标签:撤销 sha1 删除 head .so git add 输入 set tags
$ sudo apt-get install git ubuntuxia
windows下使用msysgit
1.配置
$git config --global user.name "xxx"
$git config --global user.email "abc@qq.com"
2.创建仓库
cd learngit/
$ git init
3.添加文件到仓库
$ git add filename
4.把文件提交到仓库
$git commit -m "输入操作的描述" 添加和提交的过程类似于关系型数据库的事务提交一样
5.查看工作区状态
$git status
$git diff HEAD -- ‘filename‘ 查看工作区和master区的区别
6.查看提交历史/查看所有历史命令
$ git log /$git --pretty=oneline
$ git reflog 查看所有历史命令
7.版本退回
$ git reset --hard HEAD^ HEAD是当前版本,^是前一版本
$git reset --hard 123456 每次提交的sha1码的开头一段数字
$ git reset --hard HEAD^^ ^^是前两个版本
8.撤销修改
$ git checkout -- ‘filename‘ 从工作区撤销前面的操作
$git reset HEAD ‘filename‘ 从暂存区撤回到工作区
9.删除文件
$git rm ‘filename‘ 删除暂存区的文件
$git commit -m 提交删除操作
10.将本地库添加到远程库
$ git remote add origin git@github.com:michaelliao/learngit.git
$ git push -u origin master 把本地库的内容推送到远程(初次 -u)
$ git push origin master 后续推送
11.从远程库克隆到本地
$git clone git@github.com:zhangjpn/learngit.git
12.创建和使用分支
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
13.分支冲突管理
合并时会出现冲突提示,要手动处理
14.分支管理策略
合并分支默认使用fast-forward模式
$git merge --no-ff -m ‘merge with no-ff‘ dev 以非ff模式合并,保留分支信息,可以继续在分支上进行迭代
$ git log --graph --pretty=oneline --abbrev-commit 查看分支信息
15.处理bug与工作区现场保留
$ git stash 将当前工作区冻结起来,类似于放入了一个栈中
$ git stash pop 将冻结的工作区放回到当前工作区
$ git stash apply 将冻结的工作区放回到当前工作区,但并不删除,需要手动删除,也可以多次apply
$ git stash drop 将冻结的工作区删掉,
$ git stash list 查看冻结的工作区
16.删除分支
$ git branch -d xxx
$ git branch -D 强行删除分支 在没有合并的情况下
17.分支推送到远程库
$ git push origin master 默认远程仓库是origin 本地分支是master/dev
$ git push origin dev
18.标签管理
$ git tag 展示标签列表
$ git show tagname 展示标签信息
$ git tag v1.0 在最新的commit上打标签
$ git tag v1.0 124323123 在某个commit上打标签
$ git tag -a v1.0 -m ‘xxxx‘ 12343423 在标签上添加说明
$ git tag -s .... 使用私钥签名一个标签 不要使用pgp签名用PGP签名的标签是不可伪造的,因为可以验证PGP签名
$ git tag -d tagname 删除一个本地标签
$ git push origin tagname 推送一个标签到远程
$ git push origin --tags 推送所有标签到远程
$ git push origin :refs/tags/tagname 删除远程的一个标签
18.参与开源项目中
从开源项目fork(分支)到自己仓库,然后将内容clone到自己本地仓库。
从自己的账号pull request请求到开源项目master上
19.git配置设置
$ git config --global color.ui true
20.特殊文件忽略
在工作区根目录下创建.gitignore文件
在文件中添加需要忽略的特殊文件名
# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini
# Python:
*.py[cod]
*.so
*.egg
*.egg-info
dist
build
# My configurations:
db.ini
deploy_key_rsa
强制commit忽略的文件 git add -f filename
$ git check-ignore -v App.class 检查忽略的文件所对应的规则
21.别名配置(无法起效)
$ git config --global alias.别名 命令
$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"
当前仓库配置文件.git/config
当前用户配置文件/home/username/.gitconfig 对应global
22.搭建git服务器
标签:撤销 sha1 删除 head .so git add 输入 set tags
原文地址:http://www.cnblogs.com/zhangjpn/p/6806162.html