0%

git使用小结

记录一下git使用小结。

一.特点

分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。

二.原理

  • workspace: 本地的工作目录。
  • index/stage:暂存区域,临时保存本地改动。
  • local repository: 本地仓库,只想最后一次提交HEAD。
  • remote repository:远程仓库。

三.配置及命令

  • 初始化
1
2
3
4
git init //创建
git clone /path/to/repository //检出
git config --global user.email "you@example.com" //配置email
git config --global user.name "Name" //配置用户名
  • push仓库
1
2
3
4
5
git add <file> // 文件添加
git add . // 所有文件添加
git commit -m "代码提交信息" //文件提交
git commit --amend //与上次commit合并
git push origin master //推送至master分支
  • pull仓库
1
2
3
4
5
6
git pull //更新本地仓库至最新改动
git fetch //抓取远程仓库更新
git log //查看提交记录
git status //查看修改状态
git diff//查看详细修改内容
git show//显示某次提交的内容
  • 撤销操作
1
2
3
4
5
6
git reset <file>//某个文件索引会回滚到最后一次提交
git reset//索引会回滚到最后一次提交
git reset --hard // 索引会回滚到最后一次提交
git checkout // 从index复制到workspace
git checkout -- files // 文件从index复制到workspace
git checkout HEAD -- files // 文件从local repository复制到workspace
  • 分支
1
2
3
4
5
6
git checkout -b branch_name //创建名叫“branch_name”的分支,并切换过去
git checkout master //切换回主分支
git branch -d branch_name // 删除名叫“branch_name”的分支
git push origin branch_name //推送分支到远端仓库
git merge branch_name // 合并分支branch_name到当前分支(如master)
git rebase //衍合,线性化的自动
  • 冲突处理
1
2
3
4
git diff //对比workspace与index
git diff HEAD //对于workspace与最后一次commit
git diff <source_branch> <target_branch> //对比差异
git add <filename> //修改完冲突,需要add以标记合并成功