一、git add
git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。
git add -u :他仅监控已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。(git add --update的缩写)
git add -A :是上面两个功能的合集(git add --all的缩写)
二、git commit
git commit -m "message":message即是我们用来简要说明这次提交的语句。
git commit -a -m "massage":其他功能如-m参数,加的-a参数可以将所有已跟踪文件中的执行修改或删除操作的文件都提交到本地仓库,即使它们没有经过git add添加到暂存区
三、git reset
git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
git reset HEAD -- 文件:撤销暂存区‘此文件’的修改
git reset --hard HEAD:回退到上一次服务器版本
git reset --hard 版本号:彻底回退到某个服务器版本
git reflog会记录所有HEAD的历史,也就是说当你做 reset,checkout等操作的时候,这些操作会被记录在reflog中。
eg.执行git reflog命令:
$ git reflog
b7057a9 HEAD@{0}: reset: moving to b7057a9
98abc5a HEAD@{1}: commit: more stuff added to foo
b7057a9 HEAD@{2}: commit (initial): initial commit
回滚reset:
git reset --hard 98abc5a
即可恢复先前操作的commits。
git log --pretty=oneline 查看历史信息
四、丢弃工作区修改
git checkout -- readme.txt:丢弃工作区readme.txt的修改
git checkout .:丢弃工作区的全部修改
五、创建分支
git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
$ git branch dev
$ git checkout dev
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
git branch命令会列出所有分支,当前分支前面会标一个*号
当前分支dev.png
//关联远程库
git remote add origin git@git.xxxx.xiaoming/git-test-project.git
//推送到远程仓库origin
git push -u origin dev
//从现在起,只要本地作了提交,就可以通过命令推送到远程
$ git push origin dev
六、合并分支
git merge ''分支x” 命令用于合并'分支x”指定分支到当前分支。
git merge –no-commit <branch>相当于一次快进式合并,不会生成一次提交
七、存储修改
git stash可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash list查看所有暂存列表
git stash apply stash@{0} 恢复到指定暂存修改0,1....
八、删除
//如果要丢弃一个没有被合并过的分支,可以通过
git branch -D <name>强行删除。
//删除本地的远程分支:
git branch -r -D origin/'分支名'
//远程删除git服务器上的分支:
git push origin -d '分支名'
九、多人协作
//要查看远程库的信息,用git remote:
$ git remote
origin
远程仓库的默认名称是origin。
//用git remote -v显示更详细的信息:
$ git remote -v
origin git@github.com:xxxx/xxx.git (fetch)
origin git@github.com:xxxx/xxx.git (push)
//推送分支
$ git push origin '分支名'
1.首先,可以试图用git push origin <branch-name>推送自己的修改;
2.如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
3.如果合并有冲突,则解决冲突,并在本地提交;
4.没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
5.如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。
十、标签控制
$git tag <tagname> 用于新建一个标签,默认为HEAD,也可以指定一个commit id;
$git tag -a <tagname> -m "blablabla..." 可以指定标签信息;
$ git tag -a v0.1 49e0cd22f6bd9510fe65084e023d9c4316b446a6 -m "blablabla..." 补打标签
$git tag 可以查看所有标签。
$ git show v0.1 查看标签v0.1的版本信息
$ git checkout [tagname] 切换到tagname标签
$ git tag -d v0.1 删除本地v0.1标签
$ git push origin :refs/tags/v001删除远程v001标签
默认情况下,git push 并不会把标签传送到远端服务器上,只有通过显式命令才能分享标签到远端仓库。其命令格式如同推送分支,运行 git push origin [tagname] 即可:
$ git push origin v1.5
如果要一次推送所有本地新增的标签上去,可以使用 --tags 选项:
$ git push origin --tags
网友评论