Git 使用整理(一)

相关文章
《Git 使用整理(一)》
《Git 使用整理(二)》
《Git 在 Android Studio 中的使用(图解)》
《SVN在Android studio中的使用》

相关整理
Git 常用令名使用整理
Git 在Android Studio中的使用整理


Git版本控制工具的使用主要分为三篇博客,第一篇第二篇主要为Git常用命令,第三篇为图解Git在Android Studio中的使用。

一、下载安装

1.下载Git客户端
下载地址: https://git-scm.com/downloads,下载对应系统的客户端即可。
2.安装
使用默认安装(可以修改安装路径)。
3.查看是否安装成功
安装完成后,在所有程序里面找到 "Git --> Git Bash" 或者在任意文件夹(或桌面)右键点击”Git Bash Here”打开弹出一个类似 cmd 命令的窗口表示安装成功。


二、配置用户名和邮箱

1.配置全局的用户名和邮箱
安装完成后,打开Git Bash,在弹出的窗口中输入如下命令:
git config --global user.name "用户名" <回车>
git config --global user.email "邮箱"<回车>

因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。
注意:git config  --global 参数,有了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱。
2.配置指定仓库的用户名和邮箱
在项目根目录下进行单独配置
git config user.name "用户名" <回车>
git config user.email "邮箱"<回车>

3.修改用户名和邮箱
使用配置的命令即可修改


三、本地仓库常用命令(在Git Bash窗口中使用)

什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
查看Git版本:git version
创建文件夹:mkdir testgit
进入文件夹:cd testgit
创建文件:touch readme.txt
回退到上一个文件夹:cd ..(cd 后有一个空格)
清除窗口内容:clear
将一个文件夹变为Git仓库:git init(可以发现当前目录下多了一个.git的目录,默认是隐藏的,用ls -ah命令可以看见)
把文件添加到版本库:git add readme.txt
添加多个文件到版本库:git add readme.txt test.java(多个文件以空格分隔)
提交文件到Git仓库:git commit -m"提交注释"
查看仓库状态:git status
查看修改内容:git diff readme.txt
查看文件内容:cat readme.txt
查看提交日志:git log

log扩展:
git log --pretty=oneline 记录详情只显示一行
git log -2    查看最近2次的提交历史记录
git log file1 file2   查看file1文件file2文件的提交记录
git log file/         查看file文件夹下所有文件的提交记录
git log v1 -- 查看分支为v1的记录
git log -- v1 查看文件为v1的记录
git log v1 -- v1查看分支为v1中的v1文件记录
git log v1.0..        查询从v1.0以后的提交历史记录(不包含v1.0)
git log test..master  查询master分支中的提交记录但不包含test分支记录
git log master..test  查询test分支中的提交记录但不办含master分支记录
git log master...test 查询master或test分支中的提交记录。
git log test --not master  屏蔽master分支
......

查看文件修改详情记录:git blame readme.txt
回退版本:
git reset --hard HEAD^ 回退一个版本
git reset --hard HEAD^^ 回退两个版本
git reset --hard HEAD~100 回退100个版本
git reset --hard 2e70fdf 更新到指定版本(2e70fdf,版本号)
查看版本号:git reflog

当我们将一个文件夹变为Git仓库之后,我们在文件夹里面所做的修改等都将被Git记录,

当我们在这个目录下新建一个文件需要添加到版本控制,可以使用以下步骤:

① 使用 git add 命令增加到版本控制
② 使用 git commit 命令提交
③ 在这中间可以使用 git status 命令查看每一步的状态


四、使用配置

1.配置别名
当我们觉得使用 git status查看状态时单词太长,那么我们就可以给他配置一个别名,使用时直接使用别名即可。
配置别名的命令:
git config --global alias.st status 现在 git st 就表示原来的 git status
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.last 'log -1' 查看最后一次提交信息
git config alias.lgo "log --pretty=oneline" 查看简要记录

......
--global参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有用,如果只需要配置指定仓库的,那么直接在仓库根目录下输入以上命令(一定要去掉--global)即可。
2.配置Git提交忽略文件
在仓库目录下新建一个名为 .gitignore的文件 (因为是点开头,没有文件名,没办法直接在windows目录下直接创建,必须通过Git Bash窗口的命令<在Git仓库目录下使用 Git Bash 执行touch .gitignore命令>来创建.gitignore文件)
例子:

# 忽略*.o和*.a文件
*.[oa]
# 忽略*.b和*.B文件,my.b除外
*.[bB]
!my.b
# 忽略dbg文件和dbg目录
dbg
# 只忽略dbg目录,不忽略dbg文件
dbg/
# 只忽略dbg文件,不忽略dbg目录
dbg
!dbg/
# 只忽略当前目录下的dbg文件和目录,子目录的dbg不在忽略范围内
/dbg
所有配置文件可以直接在线浏览:https://github.com/github/gitignore

也可以配置全局忽略的文件,这样就不用每个项目都加gitignore了:

git config --global core.excludesfile '~/.gitignore'
3.其他配置
比如,让Git显示颜色,会让命令输出看起来更醒目:
git config --global color.ui true
...

4.查看配置
git config --list  查看当前配置
git config --global --list  查看全局配置

git config --list查看当前配置, 在当前项目下面查看的配置是全局配置+当前项目的配置, 使用的时候会优先使用当前项目的配置
5.配置文件位置

配置Git的时候, 加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。

配置文件放哪了?

每个仓库的Git配置文件都放在.git/config文件中。

而当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中


五、工作区和暂存区
工作区:就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。
版本库(Repository):工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。
  我们前面说过使用Git提交文件到版本库有两步:
  第一步:是使用 git add 把文件添加进去,实际上就是把文件添加到暂存区。
  第二步:使用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支上。
可以简单理解为,git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后执行git commit就可以一次性把暂存区的所有修改提交到分支。


六、撤销、修改和删除文件
丢弃工作区的修改:git checkout -- readme.txt
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,即让这个文件回到最近一次git commit或git add时的状态
删除文件:rm readme.txt
一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用 rm 命令。
至此出现两种情况,一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit 提交:
git rm readme.txt
git commit -m "删除readme.txt文件"

现在,文件就从版本库中被删除了。
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
git checkout -- readme.txt
撤销修改也可以使用 git reset命令


七、生成SSH key
1.使用SSH Key原因
GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
2.查看是否已经生成了 SSH Key
在用户主目录下(一般在c:\users\[电脑用户名]),看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,表示已经生成过SSH Key了,不需要再次生成。
3.生成SSH key
①在Git Bash中使用命令:ssh-keygen -t rsa -C "youremail@example.com"
需要把邮件地址换成你自己的邮件地址,回车;然后可以指定目录,一般直接回车;接下来就是指定SSH密码和确认密码(可以不指定,不要密码)。
②如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。



4.将SSH Key添加到GitHub
登录GitHub(或者其它Git代码托管平台),打开 Settings页面,左侧点击SSH and GPG keys栏,点击右上角New SSH Key按钮,填上任意Title,在Key文本框里粘贴.ssh/id_rsa.pub文件的内容(一定要完整)
      


八、远程仓库
我们可以将本地仓库的代码关联到GitHub仓库,同时也能从GitHub仓库中读取、合并代码等。
将代码推送到GitHub仓库或者从GitHub仓库中clone代码有两种连接(提交)方式:
https 方式:每次都需要输入登录GitHub网站的用户名和密码;
ssh 方式:每次需要输入生成SSH Key时的密码,但是若在版本库中添加用户的 ssh 的key就可以实现提交时无需输入SSH密码。
1.关联远程仓库
使用ssh格式提交代码:

git remote add origin git@github.com:name/repository.git
使用https格式提交代码:
git remote add origin https://github.com/name/repository.git
说明:
    origin:远程仓库名(别名,根据爱好命名);
    name:你Git的用户名;
    repository:Git仓库名

2.断开与远程仓库的链接
git remote remove origin(别名)
3.查看远程仓库信息
git remote -v 显示每个远程仓库的URL
git remote show origin(别名)   查看指定名称的远程仓库详细信息

4.SSH提交方式重复输入SSH密码问题
当使用的是SSH方式执行git push命令时,如果你在生成SSH Key的时候没有设置密码。那么通过ssh格式添加远程仓库的方式就可以不用重复输入密码,如果你在生成 SSH Key的时候设置了密码,那么在执行 git push等命令的时候就需要输入生成SSH Key时设置的密码。
但是通过下面两个命令可以将key的密钥加入到 ssh-agent 的高速缓存中,可以使在执行git push等命令时可以不用输入SSH密码:
① ssh-agent bash<回车>
② ssh-add .ssh/id_rsa<回车>或ssh-add ~/.ssh/id_rsa<回车>

说明:
① .ssh/id_rsa:.ssh文件在当前目录;~/.ssh/id_rsa:.ssh文件不在当前目录
② 当已经使用了https方式关联Git远程仓库想要改成SSH方式时,可以先断开与远程仓库的链接,然后重新以SSH的方式关联即可。

git remote remove origin(别名)
git remote add origin git@github.com:name/repository.git

5.将本地仓库推送到远程仓库
使用命令:git push -u origin master(分支名)
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令:
git push origin master(分支名)
从现在起,只要本地作了提交,就可以通过命令把本地master分支的最新修改推送至GitHub:
git push origin master(分支名)
6.SSH警告
当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告:
The authenticity of host ‘github.com (xx.xx.xx.xx)’ can’t be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?

这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认 GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可
7.从远程仓库克隆
Git支持多种协议,默认的git://使用ssh,但也可以使用 https等其他协议。使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https。
使用ssh方式:git clone git@github.com:name/repository.git
使用https方式:git clone https://github.com/name/repository.git

name:需要克隆的代码的上传者用户名;
repository:需要克隆的Git仓库名。

8.git pull和git fetch的区别
git pull:是从远程获取最新版本并且merge到本地
git pull origin master
git fetch:是从远程获取最新版本到本地,但不会自动merge
git fetch origin master


接下文《Git 使用整理(二)》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值