Git学习笔记

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、操作指令

CommandOperationExample
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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值