git 宝典
git born & history
git local or client
install
- linux 使用 包管理安装 或者 编译安装(还不会)
- mac os 直接 安装 Xcode command line tool
- windows 安装 msysgit
初次使用时,使用 git config 配置 git 工作环境
- git config--system 此命令对系统所以用户都适用 。配置文件~/etc/gitconfig
- git config --global 用户目录下的配置文件,只使用于该用户。文件位置
~/.gitconfig
- git config 直接配置当前项目的配置信息。文件位置
.git/config
- git config user.name/user.email/merge.toolcore.editor
- git config --list/user.name
初始化版本库
- git init 将当前目录变为一个git仓库
- git clone 从已有的git仓库克隆一个新的镜像仓库
- git clone 可以在使本地仓库名和远程仓库名不同
- git clone 可以使用各种传输协议如:
https
,ssh
,git://
git 文件操作
git status
当前仓库所有文件的状态。
-
git status -s
或者git status --short
将得到更为简短的文件状态信息。 -
git 文件状态转换图
- untracked
-
untracked files
未跟踪的文件,使用git add filename
将 文件纳入git跟踪范围
-
- tracked
-
staged
已暂存状态的文件。 -
modified
已跟踪的文件被修改但是还没有放入暂存区。 使用git add
命令将文件放入暂存区。
-
git add
跟踪未跟踪的文件 或者 暂存未暂存的文件
-
git add filenames/dir
跟踪文件或者文件夹(递归跟着文件夹里面的所有文件)
gitignore
忽略某些不需要跟踪的文件
-
.gitignore
文件
git diff
当前仓库中修改的文件和暂存区域中的文件的差别,也就是修改之后还没有赞成起来的变化.
git diff --cache/--stage
已暂存的和上次上次提交时的差异。
git commit
提交更新
-
git commit
启动默认的编辑器编辑提交说明。默认编辑器使用git config core.editor
设置 -
git commit -m
直接写提交说明 -
git commit -a
暂存所有已跟踪的文件并提交
移除文件
-
git rm
从跟踪清单中移除此文件并在当前目录中删除此文件 参数-f
强制删除文件 -
git rm --cache
移除跟踪清单但不删除文件
git mv
移动文件
git log
查看提交历史
Undoing things
-
git commit --amend
将最后2次commit 合为一次。 -
git reset HEAD file
将已修改文件从缓存区撤销。 -
git checkout -- file
撤销文件的改动。
working with remote(local side)
Managing remote repositories includes knowing how to add remote repositories, remove repositories,manager various remote branches and define them as being tracked or not.
fetching and pull from remote
-
git remote add [shortname] [url]
以short name为别名增加一个远程仓库。 -
git fetch [remote name]
从远处仓库获取最新数据,不会和本地文件merge -
git pull
获取远处仓库的最新数据,自动和本地的分支merge。
pushing to remote
-
git push [remote-name] [branch-name]
将分支branch-name的修改推送到远处仓库。 -
git remote show [remote name]
查看远处仓库信息。 -
git remote rename [remote name] [new remote name]
重命名本地的远处仓库名字 -
git remote rm [remote name]
删除remote