赞
踩
Git是一个快速,可扩展的分布式版本控制系统,有利于将一个大任务分解,进行本地的多次提交。
每一个Git的工作目录都是一个完全独立的代码库,并拥有完整的历史记录和版本追踪能力。因此,不用依赖网络也可以查看,修改代码。
工作目录:包含.git文件夹的目录,主要用来存放代码。
Git只需要进行分支的切换即可达到在某个分支上工作的效果。
分布式原理图
就是我们能看到的目录,如下图的黄色区域。
如蓝色所示,是一个隐藏文件,不属于工作区,是Git的版本库。
版本库存放了很多东西,例如:
获取代码->修改->提交代码->推送到远程仓库
本地修改后(增删改查)后,把它们添加到缓存区
git add <filename文件名>
git add . #添加当前目录下的所有工作
若要删除文件
git rm <filename文件名>
使用以下命令进行实际提交
git commit -m "备注信息"
此时,代码已经提交到了本地仓库,但是还没有到远程仓库。
git push <remote-name> <local-branch-name>
git push origin master #将本地的master分支推送到远端
设置用户签名
git config --global user,name xsy #区分不同操作者身份,以此确认本次提交是谁做的
git config --global user.email xsy@qq.com
# 这里设置用户签名和将来登录Github的账户没任何关系
初始化本地库
git init #初始化后会生成一个隐藏文件.git
查看本地库状态
git status #红色:没有提交到缓存区。绿色:提交到缓存区
每天上班第一件事要记得拉取远程最新的代码到本地仓库哦~
git pull origin <branch> #更新远程仓库的branch分支到本地
需要并行开发时,需要创建分支。创建仓库的时候,master是默认的。可以在其他分支上进行开发,完成后再将它们合并到主分支上。
git checkout -b feature_x
git checkout master
git merge feature_x
git push origin feature_x #远端也有feature_x分支了
git branch -d xx
若需要检出别人已经推送到远端仓库的"feature_x"分支到本地"feature_x"分支:
git checkout -b feature_x --track origin/feature_x
git log #查看所有历史版本信息
git log -n #查看前n个历史版本信息
git log -p #查看具体变动
git log --stat #显示简要的增改行数统计,每次提交文件的变更统计
git log --pretty=oneline #一行显示,只显示哈希值和提交说明
git log --pretty=format:"" #控制显示的记录格式
git diff #工作区和暂存区比较
git diff cached #比较暂存区和HEAD的文件差异
git diff HEAD #工作区和HEAD的比较
git diff jkdshjhf skfjs #查看某两个版本之间的差异
git diff <source_branch> <target_branch> #查看分之间的差异
git diff jdkshjkd:filename jkahjk:filename #查看某两个版本的某个文件之间的差异
commit前的回滚操作
git checkout --<filename> #放弃你在工作区中指定文件的修改
git checkout --<filename> #放弃你在工作区中的所有修改?
git clean -df #放弃在工作区中添加的文件和目录(untracked file/dirs)
git reset HEAD #将已经在暂存区的改动返回到工作目录(unstage)
git reset --hard HEAD #将已经在暂存区的改动全部放弃,暂存区和工作区的内容被HEAD覆盖
commit后的回滚操作
git commit --amend #上次提交的补救模式,不会产生新commit
git revert <commit-id> #回滚中间的某次commit,会产生新commit,适用于对远端历史的回滚(不会改变远端历史)
git reset HEAD^ #回退所有内容到上一个版本,改动放到工作区
git reset soft HEAD^ #回退所有内容到上一个版本,改动放到暂存区
git reset hard HEAD^ #回退所有内容到上一个版本,改动部门删除
git reset HEAD^ filename.py #回退filename这个文件的版本到上一个版本
以下是解决 Git 冲突的基本步骤:
$ git status
On branch master
Your branch and 'origin/master' have diverged,
and have 1 and 1 different commits each, respectively.
(use "git pull" to merge the remote branch into yours)
Changes to be committed:
modified: file1.txt
Unmerged paths:
(use "git add/rm <file>..." as appropriate to mark resolution)
both modified: file2.txt
<<<<<<< HEAD
This is some content added by you.
=======
This is some content added by someone else.
>>>>>>> other-branch
This is some content added by both of us.
$ git add file2.txt
$ git commit -m "Resolve conflict in file2.txt"
$ git push
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。