Git是用于代码托管工具。python
开发来龙去脉:2002 Linux kernel 项目开发使用商业版的BitKeeper 版本控制系统(VSC)管理项目程序,但与开发BK的公司关系决裂,免费版本开始收费,促使Linux开发者本身开发新的代码托管工具。尤为是Linus Torvalds(Linux之父)等,为建立一个快速、简单、多并发、像Linux同样高效管理大型项目,而研发的开源代码管理工具。git
# Maxos会有内置git,不须要单独安装,Windows须要下载安装。 # git 全局命令 git --version # 查看git版本号,安装后查看 git clone url # 供其余终端使用
Git能够更改config文件,自定义化主题。Git配置文件可能存储到三个位置: 1. /etc/gitconfig file: 全局配置文件 2. ~/.gitconfig or ~/.config/git/config file:本地存储我的帐号 3. .git/config:本地git仓库路径中的文件,包含初始化,上传,下载的配置
# 配置全局帐号 git config --global user.name "John Doe" git config --global user.email johndoe@example.com # --global参数只能设置一个帐号,若是使用多个帐号,须要省略此参数
# 自定义编辑器(for mac) git config --global core.editor emacs # (for windows) git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -nosession"
# 查看git配置 git config --list # 查看用户名 git config user.name
本地创建新git 仓库(repository )数据库
# for mac cd /User/henry/*** # 进入本地文件夹(即将进行托管的文件夹) git init # 进行git 初识化,同时会生成本地仓库(.git/)目录 git add 文件名(.) # 添加到staging area git status # 查看git 信息,此时可看到已添加到staging area的文件以及为添加的文件 git commit -m '提示符' # 对文件进行标记,利于区分 git remote add henry https://gitee.com/***/***.git # 关联到码云帐户 git push -u henry master # 推送到码云,会提示输入密码 # for windows 进入待托管的文件夹,右击鼠标,打开git bash here 其他步骤同mac
若是已经使用过git 可使用clone 命令vim
# for example # 若是想重命名直接在url后添加文件名,也可省略表示默认文件名 git clone https://gitee.com/***/*** (文件名)
Note: git 不只支持http协议,还支持ssh 传输协议windows
# 报错1 # 缘由:本地仓库为空 error: src refspec master does not match any. error: failed to push some refs to 'https://gitee.com/***/***.git' # 解决方案 git add 文件名 或(.所有文件) git commit -m "版本名"
# 报错2 # 缘由:本地与托管平台数据不一致,常是由在托管平台删除致使 ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'https://gitee.com/***/***.git' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details. # 解决方案 git pull henry master # 强制把远端数据与本地数据同步 git push -u origin master # 从新推送便可 # 若是上述步骤不生效,还提示错误,可以使用 git push origin master -f # -f 表示强制上传,不建议常用
本地仓库中的任意文件只有两种状态:tracked (追踪)或者untracked(待追踪)。安全
untracked的文件,git不会进行托管,只有tracked的文件才能push到remote(远端)。bash
tracked文件能够有3种状态:unmodified(第一次clone后), modified(本地修改的文件)或者staged(add的文件)。session
# 告知 git, 要删除的文件 git rm filename # 查看文件状态 git status # git 已经检测到用户删除的文件
# 作标记 git commit -m 'test' # git push origin master
Note: 登录remote端,便可看到已经删除文件记录并发
# 本步骤,主要针对于小白,没法解决远端和本地同步问题 1. git add . 2. git commit -m 'test' 3. git push origin master -f
说明:ssh
# 在使用git的过程当中,咱们为了省事常常会使用 git add . 添加全部文件,可是又一些 .**的文件会同时被 track 到,这个时候咱们就须要使用选择性忽略
# step1 打开本地git 项目仓库,Mac/Linux用户能够在terimal中打开项目文件夹,windows用户在项目文件夹中打开Bash。
# step2,新建文件 vim .gitingore
# step3 添加须要忽略的文件
# 效果图对比
# 配置 .gitignore 前的Working Directory状态
# 配置 .gitignore 文件
# 配置 .gitignore 后的Working Directory状态
# 设置好.gitignore 文件后,下次就能够任性的使用git add . 的操做了。
备注:若有不当之处,欢迎广大码友指正。
References:
1. https://book.git-scm.com/book/en/v2/Getting-Started-About-Version-Control 2. 转载请注明出处。