git使用总结

 

一、安装

$ 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服务器

http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000

 

posted @ 2017-05-04 11:39  zhangjpn  阅读(164)  评论(0编辑  收藏  举报