1.名词解释
Git项目有三个工作区域,Repository(Git仓库),Working Director(工作目录),和Stage(暂存区域)。
1)Work Directory: 工作目录,就是你要上传code或者文件的区域,可以自己创建通过mkdir。PWD可以用来查看当前路径。
2)Stage/index: 暂存区域,其实是一个索引,一个文件,存放在work Dirctory/.git/index。
3)Git仓库:Git 仓库目录是 Git 用来保存项目的元数据和对象数据库的地方。 这是 Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。
2.Configure
Git 自带一个 git config
的工具来帮助设置控制 Git 外观和行为的配置变量。 这些变量存储在三个不同的位置:
-
/etc/gitconfig
文件: 包含系统上每一个用户及他们仓库的通用配置。 如果使用带有--system
选项的git config
时,它会从此文件读写配置变量。 -
~/.gitconfig
或~/.config/git/config
文件:只针对当前用户。 可以传递--global
选项让 Git 读写此文件。 -
当前使用仓库的 Git 目录中的
config
文件(就是.git/config
):针对该仓库。
每一个级别覆盖上一级别的配置,所以 .git/config
的配置变量会覆盖 /etc/gitconfig
中的配置变量。
在 Windows 系统中,Git 会查找 $HOME
目录下(一般情况下是 C:\Users\$USER
)的 .gitconfig
文件。 Git 同样也会寻找 /etc/gitconfig
文件,但只限于 MSys 的根目录下,即安装 Git 时所选的目标位置。
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址,但是user name 和email可以不是真实的。
global会让你的配置信息储存在你的c:/users/username/.git下的onfig文件
3. SSH 配置
ssh为一种加密的方式, private key 和public key, 可以通过putty生成,存放在.ssh 下。如果你的remote repository是github可以再ssh setting哪里add 你刚刚生成的public key。 然后在pageant中加入你的private key。
通过ssh -t git@github.com 来测试你的ssh connection。
通过mkdir 创建一个路径~/git_repository, 然后cd 进入这个路径 通过git init 创建一个.git的路径。
Comand
git init
创建一个名为 .git
的子目录
git add
添加到暂存区
git commit -m “ remark 信息”
update到本地的索引
git push
推送到远程仓库
git clone
$ git clone http[s]://example.com/path/to/repo.git/
$ git clone ssh://example.com/path/to/repo.git/
$ git clone git://example.com/path/to/repo.git/
$ git clone /opt/git/project.git
$ git clone file:///opt/git/project.git
$ git clone ftp[s]://example.com/path/to/repo.git/
$ git clone rsync://example.com/path/to/repo.git/
git clone 可以有以上几种方式
git clone git://github.com/schacon/grit.git mygrit
git clone https://github.com/libgit2/libgit2
会在当前目录下创建一个名为 “libgit2” 的目录,并在这个目录下初始化一个 .git
文件夹,从远程仓库拉取下所有数据放入 .git
文件夹,然后从中读取最新版本的文件的拷贝
git clone https://github.com/libgit2/libgit2 mylibgit
与上一步类似,本地创建的仓库名字变为 mylibgit
git remote -v
列出所有远程仓库,
origin - 这是 Git 给你克隆的仓库服务器的默认名字:
master是你的默认分支
origin/master 指的是你的本地分支
remote origin/master 指的是远程分支
git checkout -b version2 v2.0.0
Git branch -b 创建一个分支(比如版本,debug相关)
上面的例子,在特定的标签(v2.0.0)上创建一个新分支version2
git remote add <本地库> <网址>
git remote add origin git://github.com/paulboone/ticgit.git
关联本地仓库到远程仓库
git remote rm <主机名>
git remote rm
命令用于删除远程主机。
git remote rename
命令用于远程主机的改名
git fetch
将某个远程库的更新,全部取回本地此命令会到远程仓库中拉取所有你本地仓库中还没有的数据。也就是命令通常用来查看其他人的进程,因为它取回的代码对你本地的开发代码没有影响
git fetch <远程主机名> <分支名>
取回远程库的master
分支 ,fetch 命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并。
git clone
从远程库克隆一个版本,不会与本地的merge
git pull
命令自动抓取数据下来,然后将远端分支自动合并到本地仓库中当前分支
git merge // 合并,支线branch 合到master 主线,然后master与支branch 合并在相同节点
git rebase //变基,其他branch变基到master主线上,线性
两个都是合并分支,但有不同。
$ git merge origin/master
# 或者
$ git rebase origin/master
以上参考以下链接,如有错误,望请指正