从此以后,使用Git

来源:互联网 发布:淘宝免费视频教程 编辑:程序博客网 时间:2024/04/29 20:15

安装

检测是否安装了Git

git

如果没有安装,安装途径之一是: http://www.git-scm.com/download/

安装之后,输入git检测是否安装成功

查看使用帮助

git# 或git --help

设置用户名和密码

Git是分布式版本控制系统,如果你提交了代码,得留下你的名字和Email

git config --global user.name "Your Name"git config --global user.email "email@example.com"

本地版本库

创建本地版本库

把目录(空目录和非空目录都可以)变成Git可以管理的仓库

git init

当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,千万不要手动修改这个目录里面的文件,否则会破坏Git仓库

此时,输入git branch查看所有分支,发现什么都没有。只有发生一次commit之后,才会有master分支

工作区和暂存区介绍

在电脑里能看到的目录就是工作区

隐藏目录.git是Git的版本库,Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

这里写图片描述

添加到暂存区

git add <file file file>

添加所有修改的文件到暂存区

git add .git add --all

提交到分支

# 一定要用双引号git commit -m "some messages"

查看仓库当前状态

git status

查看工作区与暂存区文件的差异

git diff file 

查看工作区与版本库文件的差异

# HEAD大小写都可以git diff HEAD -- file

放弃工作区的修改

git checkout -- file

这里有两种情况:
一种是自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。

放弃暂存区的修改

git reset HEAD file

此时在工作区,修改的内容还在

git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。

删除文件

# 删除文件,并add到暂存区git rm filegit commit -m "message"

恢复文件

删除文件后,如果还没有commit,可以使用下面的命令恢复

git reset head filegit checkout -- file

版本

查看历史版本记录

git log [--pretty=oneline]

查看各个历史版本记录产生的命令

git reflog

版本回退

# 回退到上一个版本,有n个^就回退到上n个版本git reset --hard HEAD^# 回退到指定commit id版本git reset --hard 3628164

分支

列出所有分支,当前分支前面会标一个*号

git branch

创建分支

git branch 分支

切换分支

git checkout 分支

创建并切换分支

git checkout -b 分支

合并分支

git merge 分支

删除分支

git branch -d 分支

查看分支的合并情况

git log --graph --pretty=oneline --abbrev-commit

stash

保存现场

git stash

查看保存的现场

git stash list

恢复现场

# 恢复git stash apply# 删除git stash drop# 恢复并删除git stash pop

标签

查看所有标签

git tag

创建标签,默认标签是打在最新提交的commit上

git tag <tagname>

给特定commit id打标签

git tag <tagname> 6224937

带有说明的标签

git tag -a <tagname> -m "message" 3628164

查看标签信息

git show <tagname>

推送某个标签到远程

git push origin <tagname>

推送全部标签

git push origin --tags

删除标签

git tag -d <tagname>

删除远程标签

# 先从本地删除,然后,从远程删除git push origin :refs/tags/<tagname>

忽略特殊文件

创建.gitignore文件,把要忽略的文件名填进去,Git就会自动忽略这些文件,如:

# Windows:Thumbs.dbehthumbs.dbDesktop.ini# Python:*.py[cod]*.so*.egg*.egg-infodistbuild# My configurations:db.inideploy_key_rsa

.gitignore文件本身要放到版本库里


远程仓库

创建SSH Key

ssh-keygen -t rsa -C "youremail@example.com"

可以在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,id_rsa.pub是公钥。把id_rsa.pub文件的内容添加到某Github账号中,这样,这台电脑就有权限push代码到此账号的Github仓库了

添加远程库

如果在本地已经有了仓库(git init),可以关联到远程库

git remote add origin git@github.com:yourname/repositoryname.git

添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的

克隆远程库

git clone git@github.com:yourname/repositoryname.git

Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https

推送到远程库

git push origin master

Git 使用规范流程

http://www.ruanyifeng.com/blog/2015/08/git-use-process.html


0 0