git基本配置和操作
1. 生成密钥(公钥私钥)
- 生成用户名
git config –global user.name “your_username” - 生成邮箱
git config –global user.email “your_email@163.com” - 生成密钥
ssh-keygen -t rsa -C “your_email@163.com”
然后一直yes/enter生成密钥
2. 绑定异常
eval "$(ssh-agent -s)"
ssh-add
3. 密钥添加到git上
git上settings–>Deploy keys–>Add deploy key–>把你的 ~/.ssh/id_rsa.pub 的内容添加进去就可以了
4. 使用git
- git clone git@xxxxxxx.git
- git init (初始化git,也就是生成.git文件)
- 关联本机操作
- git add . (添加当前所有)
- git commit -m “name” (提交到本机日志)
- 查看工作区更改内容
- git diff (工作区和缓冲区比较)
- git diff commit_id (工作区和某一版本比较)
- 查看commit及回退
- git log (查看历史版本)
- git reset –hard commid_id (回退到某一版本)
- git reset HEAD^ index.txt (单独回退某一个文件,只能用HEAD,不能用–hard)
- 如果回退之后又不想回退了
- git reflog (查看回退之前的版本号)
- git分支管理
- 创建删除切换
- git branch (查看所有分支,带*表示当前分支)
- git branch dev (创建dev分支)
- git checkout dev (从当前分支切换到dev,当你切换分支后,系统会自动将当前所有文件改为该分支的最后一次快照)
- git checkout -b dev (创建dev,并切到dev)
- git branch -d dev (删除dev分支)
- 合并
- git merge dev (假设现在在master分支,执行这个命令是把master分支变得和dev一致)
- 合并冲突
- git merge dev 有时会报错,当两个分支对同一个文件都做了不同的修改的时候,合并就报错,需要我们更改当前分支的内容,就可以了
- 合并报错之后你只要修改了冲突的位置,再提交就OK了
- 暂存区stash(修改bug的时候用到)
- 如果遇到一个bug,需要立即修改,而你自身的dev开发还没完成,此时我们可以用stash暂存
- git stash (暂存工作区,此时git status的话就会发现很干净)
- 修复bug,先从master上创建并转到一个分支,再修复bug之后,转到master合并bug分支,删除bug分支
- git heckout dev (切回之前工作的分支)
- git stash list (查看暂存区)
- git stash pop (恢复暂存区内容到当前分支并在暂存区中删除内容)
- 开发新功能
- 开发新功能最好新建一个分支,开发完毕之后合并到dev,再删除分支
- 如果一个分支没有合并就必须删除,那么就使用:git branch -D feature (强制删除)
- 多人协作
- git clone git@sssss.ssss (当我们clone远程代码的时候会自动创建一个master分支)
- git checkout -b dev (为方便开发,我们可以创建一个分支dev)
- git push origin dev (要时常推送新代码到仓库的dev,保持同步更新)
- 推送的时候,如果别人也推送过,并且更改文件你的一样,就会推送失败,这时会提示你从远端仓库pull下来合并
- git pull (如果pull失败,报set tracking information,说明你的dev没有与远程dev连接)
- git branch –set-upstream dev origin/dev (连接远程origin/dev,到自身的dev)
- 根据提示合并不同项,最后提交
- 再推送 git push origin dev
- 创建删除切换