获取与创建项目
ssh-keygen -t rsa -C "邮箱" //生成公钥
ssh -T git@github.com //验证ssh配置是否成功
git config --global user.name "用户名" //上传代码到仓库时,标识作者
git config --global user.mail "邮箱" //上传代码到仓库时,标识作者
git init //初始化一个仓库
git clone url //克隆一个远程仓库
基本快照(snapshot)
git add . //把修改的文件加入缓冲区
git status -s //查看代码在缓冲区和工作目录的状态 ,-s是查看简要信息
git diff (--state) //查看工作目录的缓冲区的区别
git diff --cached //查看缓冲区和本地仓库的区别
git diff HEAD //查看工作目录和本地仓库的区别
git commit -m "提交消息" //记录缓存消息的快照,保存到本地仓库
git commit -a //在提交前将已记录、修改的文件放入缓存区
git reset HEAD --文件名 //取消缓存已缓存的内容,即取消之前add的文件
git rm //将文件从缓存区移除,并从硬盘删除
git rm --cached //从缓存区移除,不从硬盘中删除
分支与合并
git branch //列出所有分支
git branch 分支名 //创建新分支
git checkout 分支名 //切换分支
git checkout -b 分支名 //创建新分支并切换
git branch -d 分支名 //删除分支
git merge 分支名 //把分支合并到当前分支。如果不同分支的同一文件的同一行内容做不同的修改,就会发生冲突,这是需要手动解决
git log //显示一个分支提交的更改记录
git log --oneline 分支名 //简洁显示一个分支提交的更改记录
git log --online 分支A^分支B //查看在分支A中,但不在分支B中的提交记录
分享与更新项目
git remote //列出远程仓库别名 如果项目是克隆的默认为origin
git remote -v //查看远程仓库的实际地址
git remote add 远程仓库名 //为你的项目添加一个新的远程仓库
git remote rm 远程仓库名 //删除现存的某个别名
git push 远程仓库名 分支名 //将你的分支推送至远程仓库的分支。push前可能需要fetch和merge
git fetch //从远程仓库下载新的分支与数据,通常还需要git merge
git push //从远处仓库提取数据并尝试合并到当前分支,相当于git fetch + git merge
其他
工作区:你电脑里面看到的目录
缓存区:通过git工具的add命令添加
版本库:.git文件:暂存区:stage或index和
master分支和指向master分支的指针
untracked:文件还没有被添加过
working tree clean:工作区没有修改、删除
no traking information:本地分支和远程分支没有建立联系
Git和SVN都有分支,Git是双SVN结构。Git:项目代码--->git本地仓库---->git远程仓库。SVN:项目代码----->远程仓库
Git:多人协同开发同一个软件。如果使用单分支,那么冲突的频率就提高了,所以采用多分支。但是多分支的使用,加大了处理冲突的难度。所以每次提交前要先获取最新的分支和数据。同时分支过多的话,远程服务器会变得复杂和混乱。直接把分支放在本地服务器上,用git commit 实现,在根据你的需要上传的远程仓库。