1. 基本概念
工作区--看得见的文件夹,也就是实际编辑的文件
暂存区--执行 git add filename 命令后,执行命令时刻的 filename 将添加到暂存区
本地仓库--执行 git commit 后,执行命令时刻的暂存区的内容将提交到本地仓库
远端服务仓库--执行 git push 后,将内容提交到远端服务仓库
2. 分支操作
克隆master分支
git clone http://192.168.132.220/asm/ddm.git //http://192.168.132.220/asm/ddm.git 为URl
克隆非 master 分支
git clone -b feature-ddm-dev http://192.168.132.220/asm/ddm-fuse.git
查看分支
git branch -r //查看远程分支
git branch //查看本地分支
切换分支
git checkout feature_ZZB //切换到feature_ZZB分支
查看哪些文件修改:git status
对比文件:git diff VRVDZWDYWTX/src/main.cpp
新建本地及远程分支
git checkout -b new_branch_name // 新建本地分支,且切换到新建的分支,前提是当前工作区是干净的
git push origin new_branch_name
// 推送分支到远程服务器,远程分支与本地分支同名
修改本地及远程名称
git branch -m old_branch new_branch // 本地分支名称修改
git push origin new_branch // 将本地修改过的分支推送远端
git push origin --delete old_branch // 删除远端分支
3. 提交修改
添加需要提交的文件
git add filename
提交到本地仓库
git commit
提交到服务仓库
git push
4. 撤销修改
撤销工作区的修改,让这个文件回到最近一次git commit或git add时的状态,注意-- 后面有空格
git checkout -- file
撤销暂存区的修改,重新放回工作区,内容不修改
git reset HEAD file
代码回退
git reset --hard HEAD^ 回退到上个版本
git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前
git reset --hard commit_id 退到/进到 指定commit的sha码
5. 协作开发提交
git stash // 将当前工作区的修改暂存起来,同时会清空工作区的修改
git pull // 拉取最新的远端仓库代码
git stash pop // 将暂存的代码弹出,如果没有冲突,则直接添加(绿色),如果有冲突(红色)则通过对比工具消除冲突
解决冲突后按正常提交修改即可
6. 不同区域的代码对比
。。。。。。
// ========= 更新代码步骤 ========
查看远程仓库
git remote -v
$ git remote -v origin http://192.168.132.220/asm/ddm-gui.git (fetch) origin http://192.168.132.220/asm/ddm-gui.git (push)
更新远程代码到本地临时仓库
git fetch origin master:temp //从远程的origin仓库的master分支下载到本地并新建一个分支temp
比较本地仓库和临时仓库
git diff temp
合并temp分支到master分支
git merge temp
删除 temp 分支
git branch -d temp //如果该分支没有合并到主分支会报错,可以用以下命令强制删除git branch -D <分支名>
对比文件
设置对比工具
$ git config --global diff.tool bc3
$ git config --global difftool.bc3.path
"c:/program files/beyond compare 3/bcomp.exe"