git工具使用备忘

git笔记
==================

====git的相关配置====
git config --global user.name "John Doe"
git config --global user.email [email protected]
git config --global core.editor vim
git config --global merge.tool vimdiff
git config --list

====文件状态====
1.已经跟踪
2.没有跟踪
工作目录下面的所有文件都不外乎这两种状态:已跟踪或未跟踪

====添加文件====
git add 会对文件进行多次暂存
git add -A | --all添加所有当前目录下的文件
git add -u 添加版本控制下变动的文件,这样不会添加其他为纳入控制的文件
git add -p 细化的控制,用于决定添加文件的特定变化部分
git commit -a 可以略过暂存区域,直接提交(它做了这个暂存工作)

====忽略文件====
1.添加.gitignore文件, 在仓库根目录下添加作用于全局目录,在特定的
子目录下添加,作用于子目录
2.添加文件 .git/info/exclude,它作用于全局的仓库,这样的好处是不用
写.gitingnore,也不会导致提交.gitignore文件
3.进行配置,git config --global core.excludesfile ~/.gitignore,这个作用与
该用户使用的任何git仓库
注:它们的格式都一样,一行一个忽略的文件或是模式

examples:
cache
*.swap

====查看差异====
git diff 比较的是当前文件和暂存区域文件的差异,不是上一次版本
git diff --cached 比较的是暂存区域文件和上一版本的区别

====查看历史====
git log 查看全部的
git log -2 查看最近2次
git log -p 查看具体的差异

====撤销修改====
git reset HEAD  回退到上一版本(主要是更改index)
git rm --cached 删除特定文件的staging index
git checkout file 回退到上一版本,对该文件做的任何修改均不保留

====修改文件====
git mv 重命名文件或改变文件路径
git rm 删除文件,目录等

====仓库管理====
git remote 查看远程的仓库
git remote add [shortname] [url] 添加远程仓库
git remote show 查看远程仓库信息
git remote rename pb paul 远程仓库命名
git remote rm paul 删除远程仓库

====标签管理====
git tag  显示已有标签
git tag -s 加密标签

====命令别名====
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
配置参考(~/.gitconfig)
[user]
    name = y2ghost
    email = [email protected]
[core]
    editor = /usr/bin/vim
[alias]
    co = checkout
    br = branch
    ci = commit
    st = status
    unstage = reset HEAD --
    last = log -1 HEAD
    pwd = !pwd
    date = !date

====分支管理====
git branch 创建或是查看分支
git checkout 切换分支
git remote 用于管理远程分支
git push origin master 推送master分支到远程origin仓库
git pull 拉取对应的远程分支并合并到当前分支
git fetch 拉去远程分支的数据,不做合并
git merge 分支合并

====分支衍合====
git checkout xxx
git rebase master 将分支xxx的变动重放到master分支
git rebase --onto master server client检出client分支, 找出client分支
    和server分支的共同祖先之后的变化,然后把client在master上重演一遍
git rebase master server  把分支server的变动重放到master分支
    永远不要衍合那些已经推送到公共仓库的更新

====SSH仓库====
创建用户git,并且开发者发送公钥给git用户,存储在/home/git/.ssh/authorized_keys
使用git init --bare创建仓库
指定git用户的shell为git-shell

 
 

你可能感兴趣的:(git)