分布式版本控制(个人主机即版本库,有一台作为“中央服务器”来方便“交换”修改,管理修改 而非文件) vs. SVN CVS
git 安装后设置:
git config - -global user.name “bingo"
git config - -global user.email “[email protected]"
创建版本库
mkdir workDir //工作区 通过add 到版本库(的暂存区Stage), untracked: not add yet
cd worDir
git init (null version repository, got .git(may hides)) //并自动创建第一个分支master 以及一个指向它的指针 HEAD, master指向提交
git add README.txt (Unix哲学:没有消息就是好消息)
git commit //把暂存区的修改提交到分支
git diff README.txt 查看具体修改内容
git diff HEAD - - README.txt 查看共工作区和版本库里面最新版本的区别
git log
git clone [email protected]:wanglei/pn.git
git status
git branch
git checkout
./git/config
git push
git pull = git fetch + git merge 从远程获取最新版本到本地 并merge到本地仓库
git checkout -b branchname = git branch branchname + git checkout branchname
git config --global core.excludesfile ~/.gitignore_global
git checkout -- . . stages new and modified, without deleted, all 把所有文件在工作区的修改全部撤销,误删的文件也可恢复
git reset HEAD filename 把暂存区的修改撤销回工作区
git rm 从版本库中删除文件
git reset --hard HEAD^(/或commit id)
git push origin HEAD --force
git reflog 记录每一次命令, 可查看版本的commit id
git push origin test:master // 提交本体分支作为远程的master分支 左边为空时为删除右边的远程分支
.git/config 分支与远程的关系
git log -p -2 现实最近两次提交的改动(具体到行)
git log - -pretty=oneline
git log - -pretty=format:”%h - %an, %ar : %s” 提交对象的剪短哈希字符串-作者, 作者修订日期:提交说明
解决冲突:
git diff 查看
导出 git diff HEAD^ >> ../diff.txt
解决后再 git commit all
git merge - -no-ff -m “merge with no-ff” dev