Git简明教程

1. 简介

    Git是分布式版本控制系统,不同于SVN,SVN是集中式版本控制系统。

在git bush中输入git help command会打开command的帮助文档,command为任意git指令。用法非常全面。也可以打开下面的网址,自行搜索:

http://file:///D:/Git/mingw64/share/doc/git-doc

2. 几个概念

    1)版本库(repository)

        Git管理的目标,在本地是一个目录,Git会跟踪目录中文件内容的改动。包括.git目录和其他文件、目录。

    2)暂存区(stage)

        缓存要进行版本管理操作的文件、目录,在.git目录下。

    3)工作区

        版本库中除.git目录之外的文件、目录。

3. 远程版本库

    1)SSH加密

        Git与GitHub交互使用SSH加密或HTTPS。如果是SSH,则需要本地生成密钥。指令如下:

        ssh-keygen  -t rsa –C "email"

        接下来的等待输入可以一直回车,默认会在当前用户目录下生成.ssh/id_rsa和.ssh/id_rsa.pub两个文件。

        登录GitHub,依次点击

        Settings - SSH and GPG keys - New SSH key,

然后把id_rsa.pub中的内容复制到Key下面的文本框中,点击Add SSH key完成。

    2)关联并推送本地版本库和GitHub版本库

        git remote add origin https://github.com/username/projectName.git

        关联本地版本库和GitHub版本库,后面的URL是GitHub版本库的地址。

        git pull --allow-unrelated-histories

        更新GitHub版本库的内容。

        git push origin master

        上传。

        ---------------------------------------------------------------------------------------------

        deprecated@zb.20170311

        git push -u origin master

        关联并推送本地版本库内容到GitHub版本库。-u选项会关联本地、GitHub两个版本库。

        另一种关联方法:

        git branch -u origin/master master

        ---------------------------------------------------------------------------------------------

    3)从GitHub版本库创建本地版本库

        git clone https://github.com/username/projectName.git

        后面的URL是GitHub版本库的地址。

    4)更新GitHub版本库到本地版本库

        git pull

        这个指令相当于执行了git fetch和git merge两条指令。

4. 基础指令

    1)config

        git config --global user.name "username"

        git config --global user.email "email"

        设置用户名、邮箱

    2)init

        git init

        在当前目录创建版本库。

    3)add

        git add test.txt

        把文件、目录添加到版本库。

    4)commit

        git commit -m "修改日志"

        把暂存区中的文件提交到版本库中。

    5)status

        git status

        查看当前工作区中的文件状态。是否修改、添加、删除过文件。

    6)diff

        git diff test.txt

        查看文件修改的内容。

    7)log

        git log

        git log --pretty=oneline

        查看修改log,pretty参数指定了打印更简洁的log。回退的版本不会显示。

    8)reflog

        git reflog

        打印修改log,包括回退log。

    9)reset

        git reset --hard HEAD^

        git reset --hard HEAD~1

        回退一个版本。

        git reset --hard 版本号

        回退到指定版本号。版本号可以从reflog的打印信息中获得。

    10)checkout

        git checkout -- test.txt

        恢复文件。文件还未add到暂存区,或者add后又修改了,这个指令可以把文件恢复到与版本库一致,或者与暂存区一致。

5. 分支(branch)

    1)checkout

        git checkout -b newBranch

        创建分支newBranch,并切换到此分支。

        git checkout newBranch

        切换到分支newBranch,分支必须存在。

    2)branch

        git branch newBranch

        创建分支newBranch。

6. 忽略指定文件

    在版本目录中新建.gitignore文件,输入要忽略的文件、目录,格式如下:

# 忽略obj、a文件
*.obj
*.a

# 忽略生成目录
Debug
Release

    一定要在创建好版本库后就添加此文件,并且输入要忽略的文件、目录。一旦文件、目录已经添加到版本管理中,要想忽略就只能手动移除版本控制了!

7. 移除版本控制

    如果文件已经添加到版本库中,想移除版本管理,而且保留本地的文件可以使用以下指令:

#
# 移除版本库中所有obj文件的版本管理
#

# 查看要移除版本管理的文件列表
git rm  -r -n --cached \*.obj

# 真正执行移除版本管理操作
git rm -r --cached \*.obj

# -r                递归目录,从当前目录起,递归其所有子目录
# --cached          保留本地文件,只移除版本管理
# \*.obj            git拥有自己的文件匹配方式,添加*前的反斜杠是为了防止shell展开

# 记得执行完操作后commit

8. push时需要输入username、password

    https模式下,配置的SSH Key并不起作用。以下指令可以防止每次push时输入username、password:

git config --global credential.helper wincred

 

参考:

http://blog.jobbole.com/78960/

http://blog.sina.com.cn/s/blog_59fb90df0101980a.html

http://stackoverflow.com/questions/11693074/git-credential-cache-is-not-a-git-command

转载于:https://my.oschina.net/zbchmain/blog/700622

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值