git的基本使用

git的基本使用

Git是目前世界上最先进的分布式版本控制系统。

SVN与Git的最主要的区别?

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就郁闷了。

Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

代码托管

  • GitHub https://github.com/
  • 码云 https://git.oschina.net/
  • CSDN https://code.csdn.net/

用户名和邮箱

git config --global user.name "xxx"
git config --global user.email "10001226@qq.com"

因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。
注意:git config --global 参数,有了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱。

生成ssh秘钥

cd ~/.ssh
//查看是否有这个文件夹,有就备份删除

ssh-keygen -t rsa -C "10001226@qq.com"

两个Linux机器之间登录使用ssh不需要用户名和密码,ssh秘钥提供一个认证。
rsa是数字签名 大写字母C是提供注释,把后面的邮箱添加到生成的文件中。

按3个回车,密码为空。
Your identification has been saved in /home/tekkub/.ssh/id_rsa.

Your public key has been saved in /home/tekkub/.ssh/id_rsa.pub.

The key fingerprint is:

最后得到了两个文件:id_rsa和id_rsa.pub

git基本操作

新建仓库(远程项目需要是空的)

  • git init

生成代码仓库

  • git add .

添加所有修改,如果只希望添加一个,可以使用git add 文件名

  • git commit -m ‘提交注释’

提交代码到本地仓库

  • git remote add origin 远程url

这个时候需要把公钥放在远程上

  • git push -u origin master

第一次需要加-u参数,把本地的分支成为主分支。现在可以在远程上看到代码了

已有远程仓库

  • git clone 远程url
    远程url使用ssh的不要用https,https需要验证用户名、密码,太费劲。ssh直接用公钥验证。
  • git add . && git commit -m “” && git pull && git push origin master

常用操作

  • git checkout -b dev origin/master
    新建分支 分支是从远程master主分支上获取

  • git checkout 文件路径
    撤销当前文件的修改

    • add又commit之后撤销修改因为之前已经 add 过了,所以先用如下命令让状态恢复到连 add 也没有过的时候
      • git rm --cached 文件路径
  • git branch -D dev
    删除分支 必须不在当前分支上才能删除当前分支

  • git branch
    查看分支,git branch -a 查看所有分支

  • git merge dev
    把本地的dev合并到当前分支。git merge origin/dev把远程的dev合并到当前分支。

  • git push origin dev
    把本地代码推送到远程dev分支。

  • git diff
    查看文件不同

    • git diff 分支 分支 --stat
      显示不同的文件列表
    • git diff 分支 分支 文件路径
  • 编辑模式退出
    shift+q,写内容保存退出 shift+wq

  • git log
    查看最近改动

  • 回到过去:
    git reset --hard commit_id 或者 HEAD^
    HEAD是指针 指向当前版本 HEAD^^指向上上个版本 HEAD~10指向上第10个版本
    返回现在: git log 查看提交历史,找到你要的commit_id
    ### 其它

  • git remote prune origin
    清理无效分支

  • git push origin --delete分支名
    删除服务器远端的分支

  • git remote show origin查看当前项目的远程仓库

git commit 提交规范 & 规范校验

type
用于说明 commit 的类别,只允许使用下面7个标识。

feat:新功能(feature)
fix:修补bug
docs:文档(documentation)
style: 格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动

图形化工具

  • SourceTree
注意事项:
  • 所有的版本控制系统,其实只能跟踪文本文件的改动,不能跟踪二进制文件内容的改动,不幸的是,Microsoft的Word格式是二进制格式,因此,版本控制系统是没法跟踪Word文件的改动的
  • Git设计优秀主要是因为它跟踪管理的是修改,而非文件,每个文件只有一份,git会根据分支记录的修改去控制工作区中的文件的内容。
  • master也是分支,但却是主分支,HEAD指针指向的分支是当前工作的分支,良好的开发方式是新建一个分支(名字可以是dev)进行开发,然后add、commit等,最后再切回master进行merge操作,master分支仅用来发布新版本。
  • 本地创建的分支如果不推送到远程,对其他人就是不可见的。
  • 修改文件未提交时切换分支,修改的内容会同步到切换到的分支上,直到提交之后。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值