Git 基础

Git 是目前使用的较多的一种分布式版本控制系统。通过Git可以方便的对代码,文件等的版本进行控制处理,大大提升了开发过程中的便利度。

Git的安装方法可以自行百度,也可以参考这里(廖雪峰对于Git基础的介绍)

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

本地版本控制:

1、创建版本库

1)通过 mkdir 命令创建仓库,并通过 git init 对版本库进行初始化。

2)往git库中添加文件的方法主要有以下两步:

① 使用命令 git add <file>, 可以反复多次使用,添加多个文件

② 使用 git commit -m <message> 提交文件

2、文件版本控制

介绍文件版本控制的相关命令前,需要先介绍一些概念(下图,同样来自廖雪峰的Git教程):

工作区:创建的文件夹(仓库)

版本库:包括暂存区(stage)和 master 分支。.git的隐藏库,就是这里的版本库。(版本控制操作实现的基础)

1)通过 git status 命令可以掌握当前工作区的状态。

      若 git status 提示文件有修改,通过 git diff <file>可以查看修改的内容。

2)版本回退

      ① 上图中的HEAD指向当前版本,通过命令 git reset --hard commit_id 在各个版本之间变换。

      ② git log 命令可以查看提交历史,即不同的版本。以便确定需要退回到那个版本。

      ③ git reflog 可以查看命令历史,以便确定要回到未来的哪个版本。

3)撤销修改

      ① git checkout -- file 直接放弃对工作区的修改。

      ② 修改的文件已经添加到暂存区,但此时想对其修改时,分两步执行:

           第一步:git reset HEAD <file> ,将暂存区文件退回到工作区;

           第二步:同①,放弃对工作区的修改

      ③ 已经提交(commit 操作),想要撤销本次提交时,具体操作参考版本回退

4)文件删除

      ① rm <file> 命令删除对应的文件(工作区)。

      ② git rm <file> 命令从版本库中删除该文件。git commit -m <message> 确定提交删除之后的结果。

      ③ 如果发现①步删错了,此时若没有执行②(即,版本库中还存在对应的文件),可以通过命令 git checkout -- <file>还原文件。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

远程仓库:

本地数据对远程仓库进行初次关联之前需要进行以下处理:

第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

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

你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:

然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:

1、添加远程库

在github新建仓库learngit,在本地仓库中通过命令:

git remote add origin git@github.com:zhangxiangchn/learngit.git

将本地仓库和远程仓库进行关联。这里zhangxiangchn是我的github的账户名,你需要替换成你自己的账户名称。

添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

关联之后,通过命令:

git push -u origin master

将本地仓库的内容推送到远程仓库。执行以上命令之后,远程库的命令和本地仓库的命令就是一样的了。之后,在本地提交的任何修改都可以通过命令:

git push origin master

将本地仓库内容和远程仓库进行同步。

2、从远程库进行克隆

通过以下命令将远程库的内容克隆到本地

git clone git@github.com:zhangxiangchn/learngit.git

或者以下命令

git clone https://github.com/zhangxiangchn/learngit.git

以上两种地址都可以对远程仓库的内容进行克隆。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

分支管理:

1、查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

2、合并分支出现冲突的时候,需要手动解决,然后提交。

冲突文件中,Git用<<<<<<<=======>>>>>>>标记出不同分支的内容。

命令 git log --graph 可以看到分支合并图。

3、通常,合并分支时,如果可能,Git会用 Fast forward 模式,但这种模式下,删除分支后,会丢掉分支信息。

命令 

git merge --no-ff -m "merge with no-ff" dev

会禁用 Fast forward 模型,保留分支信息。-m参数表示新的提交的 message 。

4、BUG 处理

当手头工作没有完成时,先把工作现场 git stash 一下,然后去修复bug,修复后,再 git stash pop,回到工作现场。

5、

开发一个新feature,最好新建一个分支;

如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。

6、

1)查看远程库信息,使用 git remote -v

2)本地新建的分支如果不推送到远程,对其他人就是不可见的;

3)从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;

4)在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

5)建立本地分支和远程分支的关联,使用 git branch --set-upstream origin/branch-name branch-name

6)从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值