Git
获取ssh密钥
$ssh-keygen -t rsa -C "your_email@youremail.com"
$ssh -T git@github.com 检查绑定成功?
配置
git config --global user.name "your.gitname"
git config --global user.email "your.gitemail"
创建项目
git init 初始化(生成.git)
git clone git@github.com:lin-tony/##.git 下载项目源码
git log 查看历史提交记录(--pretty=oneline参数:每一条提交记录只占一行 --graph:查看分支合并图 --abbrev-commit:显示前几位版本号 --name-status:显示改动的文件
)
git checkout -- file 可以丢弃工作区的修改(包括误删)
git reset HEAD file :回退文件,将文件从暂存区回退到工作区
git reset --hard ##|HEAD^ 回退版本,##是版本号、版本号没必要写全,一个^表示一个版本、可以多个、另外也可以使用 git reset HEAD~n这种形式。
git reflog 查看命令历史,第一项就是版本号
git add file 将该文件加入缓冲区/从缓冲区删除(红色文件名代表此文件还未被Git所管理,绿色则ok)
git add . (如果全部都要更新)加入所有修改到缓冲区(文件名变为绿色)
git status 查看缓冲区状态
git commit -m "##" 提交,##是文件的描述
git push origin ## push##分支
本地仓库的上传
git pull 下载最新代码
git checkout -b ## 创建+切换分支
git checkout -b dev origin/dev 创建dev分支且
链接
远程的dev分支
git branch --set-upstream-to=origin/dev dev 指定本地dev
分支与远程origin/dev
分支的链接
git branch ## 创建分支
git branch -d ## 删除分支(-D 未合并要删除,用-D
强行)
git checkout master 切回主分支
git remote add origin url 关联远程仓库,remotename为url(https://github.com/lin-tony/test.git)的别称
git remote -v 查看远程库信息
git pull --rebase origin master 代码合并
git push (-u) origin branch push并关联(-u)到远程仓库(只需第一次关联)
git merge ## 合并##分支到当前分支 (默认为FF模式, --no-ff:强制禁用
Fast forward
模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息)
git diff filename 查看文件commit后的difference, 读懂diff
git stash 保存现场
git stash list 查看已保存的现场
git stash pop 重现现场(且自动删除stash中的)
git stash apply
恢复,stash内容并不删除,需要用git stash drop
来删除
Merge conflict in #file 解决#file的冲突
git tag ## 创建个##标签,指向head
试试看?
gitk 内建的图形化 git
git add -i 交互式添加文件到暂存区