玩转本地
初步添加使用:
初始化一个Git仓库,使用git init命令
添加文件到Git仓库,分两步:
第一步,使用命令git add ,注意,可反复多次使用,添加多个文件;
第二步,使用命令git commit,完成。(注意,只会提交add了之后的修改)
查看git状态:
- 要随时掌握工作区的状态,使用git status命令。
- 如果git status告诉你有文件被修改过,用git diff可以查看修改内容
- git gui :调出图形编辑页面
查看历史记录:
历史记录,在Git中,我们用git log命令查看:
如果嫌输出信息太多,看得眼花缭乱的,可以试试加上–pretty=oneline参数:
Git提供了一个命令git reflog用来记录你的每一次命令:
调出历史记录的图形界面: gitk –all
回退到历史版本中
回退到上一个版本:
git reset –hard HEAD^回退到上上一个版本:
git reset –hard HEAD^^回退前100个版本:
git reset –hard HEAD~100重置到某个版本:(后面的是提交的log号,使用 git log查看)
git reset –hard 3628164
撤销你当前的修改:
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
命令git checkout – readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区:
撤销步骤:
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作
删除仓库中的文件:
git rm用于删除一个文件
使用远程
将远程的代码获取到本地仓库
git fetch将自己的commit放到fetch到的提交记录的最上面(这样历史记录就是一条直线,便于查看你的History)
git rebase origin master:将远程仓库的代码拉取到本地
git pull- 将本地仓库的代码推到远程仓库
git push origin master
stash
缓存没有提交的文件(只有当当前的内容还未改完的时候,需要改之前一个版本的bug时,才需要用到stash)
git stash继续原来的工作
git stash pop,恢复版本号为stash@{1}的缓存
git stash apply stash@{1}- git show stash@{0} # see the last stash
- git stash list # list stashed changes in this git
tag
- 添加标签:
git tag -a 0.64.alpha -m “0.64.alpha” 将代码推到标签处:
git push origin 0.64.alpha:0.64.alpha给某次历史提交打上标签:
git tag -a 0.64.beta -m “0.64.beta ” 47511d966a2f830576f8e3d1fb622322c226a1c4删除本地标签:
git tag -d 0.64.beta删除标签(在Git v1.7.0 之后)
git push origin –delete tag 0.64.beta
删除远程标签可以把源标签为空:
git push origin :refs/tags/标签名
branch 分支
- 查找自己的分支
git branch 创建分支
git branch branchName切换当前工作环境到某个分支
git checkout branchName合并分支,将branchName合并到当前的分支
git merge branchName
(如果合并的时候出现了冲突,可以使用 git diff 查看冲突的地方,将冲突解决完后,再次commit 就可以了;你也可以直接commit,这时候git会告诉你冲突的文件,并提示commit失败,只有将冲突解决完成后,commit 才能成功)撤销合并(合并后的代码还未提交的情况)
git reset –hard HEAD
-合并后的代码已经commit了,还是想撤销
git reset –hard ORIG_HEAD(这条命令很危险,如果你把一个已经被另一个分支合并的分支给删了,那么以后再合并相关分支时会出错.???这句话没看懂TODO)
删除已经合并了的分支
git branch -d branchName强制删除分支,不管这个分支有没有被合并
git branch -D branchName
常见的git命令
git init
git的初始化
git add .
将代码加入到本地仓库中
git status
查看当前本地仓库的状态
git diff
查看区别
git reset
重置,可以取消add命令
git checkout
撤销修改,在还没有执行add命令前可以将撤销对代码的修改
git commit -m “decail of commit”
提交,提交到本地仓库
git push origin master
将本地仓库的代码提交到远程仓库中
git remote add origin https://github.com/bigthing33/StudyDemo.git
本地仓库和一个远程仓库建立连接
git fetch origin master
从远程仓库中更新代码,代码会合并到一个叫origin/master的分支上
git merge origin/master
将origin/master的分支合并到当前分支
git pull origin master
等于上面两个语句的合并,直接将远程仓库合并到本地仓库
git branch -a
查看分支,带*表示当前所在分支
git branch version1.0
创建一个分支
git checkout version1.0
切换到一个分支
git merge version1.0
合并指定的分支到当前分支
git branch -D version1.0
删除一个分支