git学习笔记

学习笔记供自己以后回顾。

一、新建版本库(仓库repository)

1.在合适的地方创建一个空目录

$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
	2.通过git init 把这个目录变成git可以管理的仓库.git是git来跟踪管理版本库的

3.使用“git add 文件名”例如git add helloworld.txt, 将文件添加到仓库;使用“git commit”命令提交到仓库,例如git commit -m "wrote a helloworld file",-m参数后接的字符串为提交说明

二、版本控制

1.git status 命令查看仓库当前的状态,比如文件发生改变是否添加到仓库或提交到仓库

2.git diff 命令查看文件被修改具体的内容

3.git log命令查看最近到最远的提交日志,git log --pretty=oneline 一行显示日志,首行为版本号id

4.git reset --hard HEAD^ 回退到上一个版本,在git中用HEAD表示当前版本,上上个版本可以表示为HEAD^^,上100个版本写成HEAD~100;git rest --hard 版本号 即返回到指定版本号的版本

5.git reflog 记录每次输入的命令

6.git 有工作区,缓存区,工作区->add->缓存区->commit->分支(记录,master)

7.git checkout --文件名,例如git checkout --helloworld.txt 把helloworld.txt文件在工作区的修改全部撤销,即让文件回到最近一次git add 或 git commit的状态

8.git reset HEAD file 例如git reset HEAD helloworld.txt,将暂存区的修改撤销掉,git reset命令可以回退版本,也可以把暂时区的修改回退到工作区,即回退到第7点

9.git rm 用于删除一个文件,git checkout --file 命令可以实现在版本库中误删文件的“一键还原”

三、远程仓库

1.创建SSH Key。在用户主目录下查看.ssh目录是否存在,若存在查看id_rsa和id_rsa.pub是否存在,若存在跳过次步骤,否则打开shell(Windows打开git bash)创建SSH Key ,命令ssh-keygen -t rsa -C "email@example.com" 接邮件地址,使用默认值即可,一般不需要设密码。.ssh目录下的id_rsa是私钥,id_rsa.pub是公钥

2.登录github,打开“Account setttings”,“SSH Key”页面,然后点“Add SSH Key”,填上任意Title,在key框里粘贴id_rsa.pub文件的内容

3.github上新建一个仓库,例如名为learngit,将本地的仓库与GitHub仓库关联,在本地learngit仓库下运行命令git remote add origin git@github.com:lx/learngit.git,lx为GitHub用户名,origin为远程仓库名可以改成任意名字

4.本地仓库所有内容推送到远程库上,命令git push -u origin master,第一次推送加上-u参数不但会把本地的master分支推送到远程的master分支上,还会把本地的master分支和远程的master分支关联起来,以后推送只使用git push 命令即可

5.第一次使用git的clone或者push命令连接GitHub时会有个警告,这是因为git使用SSH连接,第一次连接会验证GitHub服务器的Key,需要确认Key的指纹信息是否真的来自GitHub服务器,一般输入yes即可

6.远程克隆,假设存在gitskills新库,命令git clone git@github.com:lx/gitskills.git

7.远程分支克隆 ,git chechout -b dev origin/dev 创建远程origin的dev分支到本地,git push origin dev push到远程仓库

8.指定本地dev分支与远程origin/dev分支的连接,git branch --set-upstream dev origin/dev

9.git pull 抓取分支

10. 在windows下操作github,首先使用 git config --global user.name "username"配置一个全球用户名,然后使用git config --global user.email "emailaddress@xx.com"配置一个全球email地址,再使用 ssh-keygen -t rsa -C "emailaddress@xx.com"创建key,使用ssh git@github.com测试连接,第一次出现一个警告

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)?

直接输入yes即可,因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器

四、分支管理

1.master为git主分支,HEAD指针指向了master。新建一个dev分支,git checkout -b dev,git checkout命令加上-b参数表示创建并切换,相当于git branch dev,git chechout dev两条命令,git checkout 命令表示切换分支。git branch命令查看当前分支.

2.git merge dev 表示将dev合并至当前分支

3.git branch -d dev 删除dev分支.

4.当Git无法自动合并是必须先解决冲突,然后再提交

5.git log --graph命令查看分支合并图

6.git默认会用 Fast forward模式,这种模式删除分支后会丢失掉分支信息,git merge --no--ff -m "merge with no-ff" dev表示禁用Fast forward模式,-m 带说明

7.分支策略,master分支仅用来发布新版本,在dev分支上工作,每个人都有自己的分支,完成后合并至dev分支

8.git stash 命令保存当前工作现场,git stash list查看stash内容

9.git stach apply 回复工作内容,git stash drop来删除stash,另一种git stash pop 恢复的同时删除stash内容

10.git branch -D <name> 强制删除一个未合并的分支

11. git remote 查看远程库的信息,git remote -v 显示详细的远程信息

五、标签管理

1.切换至打标签的分支上,输入命令 git tag v1.0,git tag 查看所有标签,git tag v0.9 6663439,可以指定一个commit id 打标签

2.git show v0.9 查看v0.9标签的详细信息

3. git tag -a v0.1 -m "vsersion 0.1 released" 6666034 -a指定标签名,-m指定说明文字

4.git tag -s v0.1 -m "version 0.1" 6666034 -s使用PGP签名标签

5.git tag -d v0.1 删除标签

6.git push origin v0.1 推送某个标签至远程,git push origin --tags 推送全部标签

7.删除远程标签,先git tag -d v0.1删除本地标签,再git push origin :refs/tags/v0.1删除远程标签

六、GitHub

1.在GitHub上可以任意Fork开元仓库,然后即可在自己的GitHub仓库pull到本地

七、码云

1.国内的Git托管服务——码云(gitee.com),五人以下团队免费

2.git remote add origin git@gitee.com:lx/learngit.git 关联远程库,如果报错用git remote -v命令查看是否远程库重名

3.其他的同GitHub一样

八、自定义Git

1.git config --global color.ui true 让git显示彩色

2.忽略特殊文件,在git工作区的根目录下创建一个.gitignore文件,把要忽略的文件名填进去,然后提交到Git

3.git add -f xx.txt 强制添加xx.txt文件至git

4.别名的设置,git config --global alias st status,将status设置st别名



学习连接地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值