git学习日志

仅仅说一下现阶段对于git的理解。(刚学)看标题 有空就补充点
**帮助在云端管理代码。**可以把代码保存到云端,也可以把代码进行下载。还有就是可以查看之前的版本以及进行回滚。
下面一部分学习自http://git-scm.com/

git安装

无外乎三种,一个命令安装,下载可运行文件安装,从源码安装。
可查看下面网址进行安装

https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git

git配置

1,位置信息

~/.gitconfig
.git/config # 当成全局环境变量
/etc/gitconfig # 可以当成个人的环境变量,和bashrc和profile的关系差不多

2,设置你的用户名和邮件地址(每次提交都会使用这些信息)

git config --global user.name "名字"  # 设置名字
git config --global user.email johndoe@example.com # 设置邮箱
# --global 表示你在电脑中的任何位置使用git都会用上面的信息
# 想针对特定项目使用不同的用户名称与邮件地址时,可以在那个目录下使用不带--global的命令
git config --list # 可以列出配置信息

git仓库

1,从网上拉取

git clone https://github.com/libgit2/libgit2 # 后面的地址就是github上会有的地址。学习代码常用命令。

2,本地构建
首先进入到我们要使用的代码的文件夹下,可以用cd命令

git init # 会创建一个名为 .git 的子目录,也就是初始化一个文件夹

对文件代码进行跟踪,已跟踪的文件就是 Git 已经知道的文件

git add *.c
git add LICENSE
git commit -m 'initial project version' # 引号后面是备注,去github上也可以看到对于某些文件改动的描述
git status # 可以查看哪些文件处于哪些状态,有新文件,已修改等状态

文件跟踪

git add README # 跟踪一个文件

忽略文件

vim .gitignore # 可以使用vim命令在这个文件下忽略你想要跟踪的代码
*.[oa] # 在gitignore里面加上这个可以忽略以.o和.a结尾的文件
*~ # 在gitignore里面加上这个可以忽略以波浪号结尾的文件
build/ # 忽略所有build文件夹
/build # 忽略当前build文件夹

移动文件

git mv README.md README  # 记录移动文件
# 相当于下面三个命令
mv README.md README
git rm README.md
git add README

查看历史

git log # 按时间先后顺序列出所有的提交
git log -p -2 # 输出两条记录 
git log --stat # 显示简略统计信息
git log --pretty=oneline # 以不同的风格展示提交历史 还有short,full 和 fuller,还可以用format(离谱)
git log --since=2.weeks # 限制展示时常为两周

撤销操作(这个部分就有点不理解了)

git commit -m 'initial commit' # 提交操作
git add forgotten_file # 这个时候发现有个文件没有提交
git commit --amend # 撤销上一次的提交,再重新进行一次新的提交

取消暂存的文件
操作暂存区和工作目录中已修改的文件

git add * # 暂存文件(之后我得看看*啦,.啦有啥区别)
git reset HEAD CONTRIBUTING.md # 取消CONTRIBUTING.md文件的暂存,git status之后会有提示

撤消对文件的修改

git checkout -- CONTRIBUTING.md # 撤消之前所做的修改,将它还原成上次提交时的样子,git status会有提示,对那个文件在本地的任何修改都会消失,Git会用最近提交的版本覆盖掉它。

远程仓库

git remote add pb https://github.com/paulboone/ticgit # 添加远程仓库,前面pd是别名,后面是url
git remote -v # 查看远程仓库
git fetch pb # 从别名为pd的远程仓库拉取信息
git push origin master # 将 master 分支推送到 origin 服务器时(如果有人先于你进行推送,你必须抓取之后才可以推送)
git remote show origin # 查看origin 别名仓库的信息,列出了当你在特定的分支上执行 git push 会自动地推送到哪一个远程分支
git remote rename pb paul # 重命名pd为paul
git remote remove paul # 移除一个远程仓库

打标签

git tag # 打标签
之后再加内容

git别名

git config --global alias.ci commit # 为commit设置别名为ci。
git ci # 这样就等同于git commit了
git config --global alias.unstage 'reset HEAD --' # git unstage fileA等同于git reset HEAD -- fileA了

没说怎么在云端使用,后面补。

基础的内容:

  • Git 是一个开源的分布式版本控制系统(我觉得叫工具也行)
  • 分布式(不需要服务器端软件,就可以运作版本控制)
  • 把内容按元数据方式存储
  • git 本身关心文件的整体性是否有改变
  • git 是用 C 语言开发的(极致的速度)
  • TCP 监听端口为 9418

(git 存储每个新创建的 object 作为一个单独文件。为了压缩存储空间占用, packs 操作把很多文件(启发式类似名字的文件往往具有类似内容)使用差分压缩入一个文件中(packfile),并创建一个对应的索引文件,指明 object 在 packfile 中的偏移值。新创建的对象仍然作为单独文件存在。repacks 操作非常费时间,git 会在空闲时间自动做此操作。也可用命令 git gc 来直接启动 repack。packfile 与索引文件都用 SHA-1 作为校验和并作为文件名。git fsck 命令做校验和的完整性验证。)待理解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值