Git简介及安装配置

Git内部有三种状态:已提交、已修改、已暂存(已修改的文件放在下次提交时要保存的清单)

每个项目都有一个git 目录,它是Git 用来保存元数据和对象数据库的地方。该目录非常重要,每次克隆镜像仓库的时候,实际拷贝的就是这个目录里面的数据。

• /etc/gitconfig文件:系统中对所有用户都普遍适用的配置。若使用git config 时
用--system 选项,读写的就是这个文件。
• ~/.gitconfig文件:用户目录下的配置文件只适用于该用户。若使用git config 时
用--global 选项,读写的就是这个文件。
• 当前项目的git 目录中的配置文件(也就是工作目录中的.git/config 文件):这
里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以
.git/config 里的配置会覆盖/etc/gitconfig 中的同名变量。

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

$git init 初始化项目

$git add 添加追踪文件、以追踪但又被更新的文件重新追踪,否则提交的只是更新之前的内容

$git status 查看状态

$git rm --cached 移除追踪但不删除文件

$git checkout 对已经追踪但又被更新的文件撤销更新

$git diff 当前工作目录的文件和已暂存的文件之间的差异

$git diff --cached 或者$git diff --staged 查看已暂存的和上次提交的快照之间的差异

$git commit -m 提交并写入提交说明

$git commit --amend 重新提交刚才的提交

$git commit -a 自动把追踪的所有文件暂存并提交

$git log 查看提交历史

-p 显示每次提交的差异

-2 最后两次提交

--stat 增改行数统计

--pretty 选项,可以指定使用完全不同于默认格式的方式展示提交历史

--pretty=oneline 一行显示一次提交

git reset HEAD <file>... 的方式取消暂存

git remote 命令,它会列出每个远程库的简短名字。在克隆完某个项目后,至少可以看到一个名为origin 的远程库,Git 默认使用这个
名字来标识你所克隆的原始仓库,也可以加上-v 选项(译注:此为—verbose 的简写,取首字母),显示对应的克隆地址

git fetch origin 会抓取从你上次克隆以来别人上传到此远程仓库中的所有更新(或是上次fetch 以来别人提交的更新)。有一点很重要,需要记住,fetch 命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并。。

如果设置了某个分支用于跟踪某个远端仓库的分支(参见下节及第三章的内容),可以使用git pull 命令自动抓取数据下来,然后将远端分支自动合并到本地仓库中当前分支

默认情况下git clone 命令本质上就是自动创建了本地的master 分支用于跟踪远程仓库中的master 分支(假设远程仓库确实有master 分支)。所以一般我们运行git pull,目的都是要从原始克隆的远端仓库中抓取数据后,合并到工作目录中当前分支。

$ git branch testing 新建一个分支

$ git checkout testing 这样HEAD 就指向了testing 分支

要新建并切换到该分支,运行git checkout 并加上-b 参数:$ git checkout -b iss53

Create a new repository on the command line

touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:beyondlqh/ss.git
git push -u origin master

Push an existing repository from the command line

git remote add origin git@github.com:beyondlqh/ss.git
git push -u origin master


当你把自己的公钥通过github的账户添加ssh key的时候,你的linux机器就可以ssh登陆git@github.com服务器 ssh -T git@github.com测试,这样你才能用ssh的方式去github上clone源码,通过https协议可以绕过这一限制。

分支:

git checkout -b [分支名] [远程名]/[分支名] 创建一个跟踪分支,跟踪远程分支。

$ git checkout --track origin/serverfix 同上,只不过是创建同名追踪分支

git push的时候加上-u参数会在config文件中追加跟踪分支的映射关系,这样git pull的时候就不用指定origin 和 branch,直接git pull即可。

原文地址:https://www.cnblogs.com/waxili/p/3488516.html