Git学习笔记

来源:互联网 发布:菜刀切到手 知乎 编辑:程序博客网 时间:2024/06/18 06:12

1、版本控制系统

1.1、集中式版本控制系统:

1.1.1、特点

1)效率低、安全性低:中央服务器保存完整的版本库,单独开发和协同合作都需要联网;

2)分支管理:速度慢;

3)标签管理;

1.1.2、产品

1)CVS:CVS是一个C/S系统,是最早的开源的免费的代码版本控制软件,由于CVS自身设计的问题,会造成提交文件不完整,版本库莫名其妙损坏的情况;

2)SVN:SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,修正了CVS的一些稳定性问题,是目前用得最多的集中式版本库控制系统;

1.2、分布式版本控制系统:

1.2.1、特点

1)效率高、安全性高:每个开发者都保存有完整的版本库,单独开发无需联网;

2)远程仓库:协同合作时需要中央服务器,用于保存版本库并交换所有开发者的修改,需要联网;

3)分支管理:速度快;

4)标签管理;

1.2.2、产品

1)Git:Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目;

2)BitKeeper:BitKeeper是BitMover公司开发的分布式版本控制系统;

3)Mercurial:Mercurial是一种轻量级分布式版本控制系统,采用 Python 语言实现,易于学习和使用,扩展性强。其是基于 GNU General Public License (GPL) 授权的开源项目;

4)Bazaar:Bazaar是一个分布式的版本控制系统,采用 GPL 许可协议,由 Canonical 公司(Ubuntu母公司)赞助;

2、安装Git

2.1、Linux

1)Debian或Ubuntu Linux

sudo apt-get install git

2)旧版Debian或旧版Ubuntu Linux

sudo apt-get install git-core

3)其他Linux版本

先从Git官网下载源码,然后解压,依次输入:./config,make,sudo make install安装。

2.2、Mac OS X

2.2.1、Homebrew安装

1)安装Homebrew:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2)安装Git:

brew install git

3)查看安装的开源软件包:

brew list

4)查看某个软件包安装的详细路径和安装内容:

brew list git

2.2.2、XCode安装

1)从AppStore安装Xcode,Xcode集成了Git;

2)运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”完成安装。

2.3、Windows

2.3.1、msysgit安装

1)msysgit已经将模拟环境和Git都打包好,默认选项安装即可,下载地址:

https://git-for-windows.github.io/

2)安装完成后,在开始菜单里找到“Git”->“Git Bash”;

3)账号邮箱设置:

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

3、远程仓库

4.1、创建SSH Key

进入用户主目录里的.ssh/目录:

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

根据提示输入密钥的名称id_rsa以及口令,创建成功后,有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露,id_rsa.pub是公钥。

4.2、添加公钥到Gtihub

登陆GitHub,进入“Settings”,打开“SSH and GPG keys”页面,然后点击“Add SSH Key”,在Title文本框填上密钥名称,在Key文本框里粘贴id_rsa.pub文件的内容。

4.3、将远程仓库和本地版本库进行关联

在本地版本库目录下,添加远程仓库:

git remote add origin git@github.com:chaozhouzhang/blogs.git

添加成功之后,拉取远程仓库到本地主分支:

git pull origin master --allow-unrelated-histories

拉取成功之后,将修改提交到本地版本库:

git add .git commit -m "add all"

提交成功之后,再将本地分支推送到远程仓库:

git push origin master

4、操作指令

Command Operation Example init 初始化Git仓库 git init add 添加修改到暂存区 git add readme.txt add 强制添加修改到暂存区 git add -f App.class commit 提交修改到版本库 git commit -m “wrote a readme file” status 查看工作区的状态 git status diff 查看文件的修改内容 git diff readme.txt diff 查看文件在工作区和版本库里最新版本的区别 git diff HEAD –readme.txt log 查看提交日志 git log log 查看提交单行日志 git log –pretty=oneline log 查看分支合并图 git log –graph log 查看提交单行简单名称日志 git log –pretty=oneline –abbrev-commit log 查看分支单行合并图 git log –graph –pretty=oneline –abbrev-commit reset 回退版本库到上1个版本 git reset –hard HEAD^ reset 回退版本库到上2个版本 git reset –hard HEAD^ ^ reset 回退版本库到上100个版本 git reset –hard HEAD~100 reset 回退版本库到commitid版本 git reset –hard 0cd2cfe reset 回退暂存区的修改到工作区 git reset HEAD readme.txt reflog 查看命令历史 git reflog checkout 丢弃工作区的修改 git checkout – readme.txt checkout 创建并切换分支 git checkout -b dev checkout 本地创建和远程分支对应的分支 git checkout -b branch-name origin/branch-name checkout 切换分支 git checkout master branch 查看当前分支 git branch branch 创建分支 git branch dev branch 删除分支 git branch -d dev branch 建立本地分支和远程分支的关联 git branch –set-upstream branch-name origin/branch-name branch 强行删除未合并的分支 git branch -D feature-vulcan rm 从版本库中删除 git rm readme.txt merge 合并指定分支到当前分支 git merge dev merge 普通模式合并,合并后的历史有分支 git merge –no-ff -m “merge with no-ff” dev stash 储藏工作现场 git stash stash 查看储藏工作现场列表 git stash list stash 恢复储藏工作现场 git stash apply stash 删除储藏工作现场 git stash drop stash 恢复并删除储藏工作现场 git stash pop stash 恢复指定的储藏工作现场 git stash apply stash@{0} clone 克隆远程仓库到本地仓库 git clone github.com:chaozhouzhang/blogs.git remote 查看远程仓库的信息 git remote remote 查看远程仓库的详细信息 git remote -v push 推送分支 git push origin master push 推送某个标签到远程 git push origin v1.0 push 远程删除某个标签 git push origin :refs/tags/v0.9 push 一次性推送全部尚未推送到远程的本地标签 git push origin –tags tag 打新标签 git tag v1.0 tag 查看所有标签 git tag tag 给某个提交打标签 git tag v0.9 6224937 tag 创建带有说明的标签 git tag -a v0.1 -m “version 0.1 released” 3628164 tag 用私钥对标签PGP签名 git tag -s v0.2 -m “signed version 0.2 released” fec145a tag 删除本地标签 git tag -d v0.1 show 查看某个标签信息 git show v0.9 config 让Git显示颜色 git config –global color.ui true config 配置用户名 git config –global user.name “Your Name” config 配置用户邮箱 git config –global user.email “email@example.com” check-ignore 检查.gitignore规则 git check-ignore -v App.class config 配置命令的别名 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”

5、参考资料:

1)Git官网:

https://git-scm.com/

2)廖雪峰老师的Git教程:

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

3)易百教程的Git教程:

http://www.yiibai.com/git/

Github

https://github.com/chaozhouzhang/blogs

原创粉丝点击