mac自带git。
本地
git的配置,邮箱地址和用户名
配置邮箱
$ git config –global user.email “799745776@qq.com“配置用户名
$ git config –global user.name “plh”查看当前的配置
$ cat .git/config
git命令
下载代码
$ git clone git@github.com:…….
添加文件到Git仓库
先打开指定的文件夹。用cd.
放在暂缓区的命令
$ git add Read.md
$ git add .本地提交仓库
$ git commit -m “提交代码”将提交推送到服务器
$ git push origin master查看状态
$ git staus更新本地代码
$ git pull
分支管理
先在分支上进行操作,再合并到主干上。
查看所有本地分支
$ git branch列出所有远程分支
$ git branch -r创建分支
$ git branch V2将分支提交到服务器
$ git push origin V2切换分支
$ git checkout V2
修改V2分支上的文件,再提交本地修改,将提交推送到服务器上。分支内容修改,主干不变。合并分支到主干
切换到主干上再合并
$ git checkout master
$ git merge V2
$ git push删除分支
$ git branch -d name删除远程分支
$ git push origin –delete name
$ git branch -dr [remote/branch]
版本还原
$ git checkout V2
- 将本地代码还原最近一次提交的修改
$ git revert HEAD
填写描述信息。保存退出。查看本地文件内容是否修改。
git push origin V2 - 还原到指定版本
$ git revert fxxxx
版本回退
显示当前分支的版本历史
$ git log恢复前一个版本
git reset –hard HEAD^恢复前两个版本
$ git reset –hard HEAD^^恢复前 N 版本
$ git reset –hard HEAD~N恢复指定版本
$ (git lg) git reset –hard 版本号查看指令使用历史,确定要回到未来的哪个版本
$ git reflog
删除文件
1 | $ git rm 文件名 |
添加和配置SSH公钥
SSH(Secure Shell)是一种安全协议,在你的电脑与GitLab服务器进行通信时,我们使用SSH密钥(SSH Keys)认证的方式来保证通信安全。你可以在网络上搜索到关于SSH密钥的更多介绍;下面我们重点讲解如何创建 SSH密钥,并将密钥中的公钥添加到GitLab,以便我们通过SSH协议来访问Git仓库。
创建SSH Key
1.进入SSH目录
cd ~/.ssh
(1)如果还没有 ~/.ssh 目录,可以手工创建一个(mkdir ~/.ssh),之后再通过cd ~/.ssh进入SSH目录
(2)可以通过ls -l命令查看SSH目录下的文件,来确认你是否已经生成过SSH密钥;如果SSH目录为空,我们开始第二步,生成 SSH 密钥;如果存在id_rsa.pub这个文件,说明你之前生成过SSH密钥,后面有介绍如何添加多个sshkey
1 | $ ssh-keygen -t rsa -C "youremail@example.com" |
生成的文件在/Users/user/.ssh。
2.生成SSH密钥
我们通过下面的命令生成密钥,请将命令中的YOUR_EMAIL@YOUREMAIL.COM替换为你自己的Email地址。
ssh-keygen -t rsa -C “YOUR_EMAIL@YOUREMAIL.COM“
在SSH生成过程中会出现以下信息,按屏幕的提示操作即可;
1 | $ ssh-keygen -t rsa -C "YOUR_EMAIL@YOUREMAIL.COM" |
说明:
(1)一般情况下,在命令行中输入密码、口令一类的信息时是没有信息回显的。在我们这一步的操作中,输入passphrase口令时,命令行界面上不会随着键盘敲入密码而有什么反馈。
(2)当提示Enter passphrase (empty for no passphrase) : 时,可以直接按两次回车键输入一个空的 passphrase;也可以选择输入一个 passphrase 口令,如果此时你输入了一个passphrase,请牢记,之后每次提交时都需要输入这个口令来确认。
3.获取SSH公钥信息
SSH密钥生成结束后,你可以在SSH目录下看到私钥id_rsa和公钥id_rsa.pub这两个文件,不要把私钥文件id_rsa的信息透露给任何人。我们可以通过文本编辑器或cat命令来查看id_rsa.pub公钥信息。
(1)通过编辑器。使用你熟悉的文本编辑器,比如 记事本、Sublime Text等软件打开id_rsa.pub,复制里面的所有内容以备下一步使用。
(2)通过cat命令。在命令行中敲入cat id_rsa.pub,回车执行后命令行界面中会显示id_rsa.pub文件里的内容,复制后在下一步使用。
(3)通过直接使用命令将id_rsa.pub文件里的内容复制到剪切板中
Windows: clip < ~/.ssh/id_rsa.pub
Mac: pbcopy < ~/.ssh/id_rsa.pub
GNU/Linux (requires xclip): xclip -sel clip < ~/.ssh/id_rsa.pub
4.添加SSH公钥到gitlab
(1)打开https://gitlab.com/profileProfile配置页面,选择SSH Keys.
(2)添加SSH公钥
按照要求填写Title和Key,其中Title是Key的描述信息(如My_work_computer等),Key是上面复制的SSH公钥的内容,直接粘贴到输入框中保存即可。
5.测试SSH连接
ssh -T git@gitlab.com
如果连接成功的话,会出现以下信息。
Welcome to GitLab, USERNAME!
远程同步
下载远程仓库的所有变动
$ git fetch [remote]显示所有远程仓库
$ git remote -v显示某个远程仓库的信息
$ git remote show [remote]增加一个新的远程仓库,并命名
$ git remote add [shortname] [url]取回远程仓库的变化,并与本地分支合并
$ git pull [remote] [branch]上传本地指定分支到远程仓库
$ git push [remote] [branch]强行推送当前分支到远程仓库,即使有冲突
$ git push [remote] –force推送所有分支到远程仓库
$ git push [remote] –all
补充
显示本地git库:
1 | $ defaults write com.apple.finder AppleShowAllFiles -bool true |
隐藏本地git库
1 | $ defaults write com.apple.finder AppleShowAllFiles -bool false |
其他
git help :git指令帮助手册
查看其他指令的做法:git help 其他指令
git config :git的配置信息相关(修改的是.git/config文件)
配置用户名:git config “user.name” 用户名(用于跟踪修改记录)
配置邮箱:git config “user.email” 邮箱(用于多人开发间的沟通)
查看配置信息:git config –l
编辑配置信息:git config –e(用vim编辑,:wq是退出vim编辑器)
设置指令的别名:git config alias.别名 原指令名称
设置带参数指令的别名:git config alias.别名 “原指令名称 参数”
将此设置应用到整个系统中:git config ––gloabal
git status :查文件的状态
查看某个文件的状态:git status 文件名
查看当前路径所有文件的状态:git status
git log :查看文件的修改日志
查看某个文件的修改日志:git log 文件名
查看当前路径所有文件的修改日志:git log
用一行的方式查看简单的日志信息:git log ––pretty=oneline
查看最近的N次修改:git log –N(N是一个整数)
git diff :查看文件最新改动的地方
查看某个文件的最新改动的地方:git diff 文件名
查看当前路径所有文件最新改动的地方:git diff
搭建GitHub远程仓库 – 配置SSH Key
- 注册一个GitHub帐号:https://github.com
- 打开“Account Settings”
- 点击“SSH keys”
配置Mac的SSH Key的公钥(用于限制提交)
在Mac上生成SSH Key(在终端输入下面指令)
cd ~/.ssh
ssh-keygen -t rsa -C “你的邮箱地址”
然后一直敲回车然后就会在~/.ssh目录下生成SSH Key的秘钥对
id_rsa :私钥,不可泄露
id_rsa.pub :公钥,可以公开(将这个文件的内容粘贴到GitHub上)利用cat指令可以查看文件的内容
cat id_rsa.pub
团队开发-分支管理 - Tag
查看当前标签
$ git tag
在本地代码库给项目打上一个标签
$ git tag -a v1.0 -m ‘Version 1.0’
将标签添推送到远程代码库中
$ git push origin v1.0
使用tag,就能够将项目快速切换到某一个中间状态,例如产品开发线上的某一个稳定版本,签出v1.0标签
$ git checkout v1.0
从签出状态创建v1.0bugfix分支
$ git checkout -b bugfix1.0
查看远程分支
$ git branch -r
删除远程分支
$ git branch -r -d origin/bugfix1.0
.gitignore
.gitignore可以指定哪些文件不纳入版本库的管理
参考网址:https://github.com/github/gitignore
面试题
说明GIT合并的两种方法以及区别。
答:Git代码合并有两种:Git Merge 和 Git ReBase。Git Merge:这种合并方式是将两个分支的历史合并到一起,现在的分支不会被更改,它会比对双方不同的文件缓存下来,生成一个commit,去push。
Git ReBase:这种合并方法通常被称为“衍合”。他是提交修改历史,比对双方的commit,然后找出不同的去缓存,然后去push,修改commit历史。