Git命令详解

获取与创建项目

  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 实现,在根据你的需要上传的远程仓库。

  

原文地址:https://www.cnblogs.com/ckui/p/6374843.html