Git命令学习整理

来源:互联网 发布:电信4g首选网络类型 编辑:程序博客网 时间:2024/05/16 06:47

本地管理:

创建工程目录:mkdir MyProject进入工程目录:cd MyProject初始化仓库:git init   文件的三种状态:已修改(工程目录)->已暂存(暂存到仓库暂存目录)->已提交(提交到仓库)查看当前状态:git status暂存到仓库,这里只是放到暂存区域:git add Readme.txt提交到仓库:引号后里面的为本次提交说明git commit -m "add a readme file"查看修改地方:git diff readme.txt查看提交完整日志:(如果没有显示完整,则先退出dos窗口,重新打开查看)git log查看简单的日志,只看版本号和提交说明:git log --pretty=oneline仓库中HEAD指针指向最新的版本,上一个版本HEAD~,上上一个版本HEAD~~,往上第一百个版本HEAD~100回到上一个版本:此时Readme文件里的内容为上一次修改的内容,仓库中的最新版本也不见了,回到了上一个版本,HEAD指针指向上一个版本git reset --hard HEAD~如果突然发现删错了,要恢复删除的版本,hard后加上删除的版本号前几位:此时文件和版本号都会来了,HEAD指针指向被删除的指针git reset --hard 640ef查看此时Readme文件内容:type Readme.txt如果删错了之后,关闭了DOS窗口找不到被删的版本号,用该命令查看之前的每一次命令:git reflog查看工作区目录与仓库中最新版本的区别:git diff HEAD -- Readme.txt可以先暂存多次修改,在一次性提交仓库:git add XXgit add XXgit commit -m"XXX"若在工作区作了修改,该命令撤销全部修改,若修改后被放到暂存区,则撤销到暂存区状态,若没有则撤销到版本库状态git checkout -- Readme.txt撤销暂存区的修改,即文件从已暂存回到已修改:git reset HEAD Readme.txt若进一步撤销工作区修改:git checkout -- Readme.txt删除文件:del test.txt如果为误删的话,则从版本库里恢复:git checkout -- test.txt如果确实要删除:git rm test.txt

远程管理

准备:

1 创建GitHub账号2 创建SSH Key打开GitBash,输入ssh-keygen -t rsa -C "youremail@example.com"一路回车,在本机C:\Users\Administrator\路径下出现了.ssh文件夹,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。3 登入GitHub账户,setting->SSH and GPG keys->New SSH keyTitle随意输入,将id_rsa.pub里的内容复制进key文本框->Add key,创建成功!

接下来在本地提交仓库之后,即可推送到GitHub:git push origin master将远程库克隆到本地,后面跟自己的仓库地址,克隆的文件保存在本地E:\MyProject下E:\MyProject>git clone https://github.com/ZhangZhiHao233/testtwo.git

分支管理:

创建dev分支,并转到该分支:git checkout -b dev相当于:git branch devgit checkout dev查看当前分支:git branch切回master分支:git checkout master合并dev分支到当前分支:git merge dev删除分支:git branch -d dev如果在两个分支中都对Readme文件做了修改并存入暂存区域,合并时会显示冲突,即另个文件里的内容都被合并在了一起,此时应该打开文件,修改文件,继续提交查看分支合并情况:git log --graph --pretty=oneline --abbrev-commit使用--on-ff模式合并分支,则分支的版本会会显示记录之中,而fast-forward模式直接合并,不留记录git merge --no--ff -m "merge with off" dev

保存和恢复现场:

保存现场:git stash查看现场保存的地址:git stash list恢复现场,一不删除stash保存的内容:git stash drop二是回复后删除stash中的内容:git stash pop恢复指定的现场:git stash apply stash@{0}

团队合作:

一般masterw为主分支,为发布版本的分支,平时不在上面工作。干活都在dev分支上,每个人都从dev的分支上分出自己的分支,写好后就不停地忘dev上并。对个人而言,每添加一个功能,就添加一个feature分支,若要强制删除功能分支:git branch -D feature查看远程库信息:git remove -v推送本地分支:git push origin master/dev其他人若想加入项目协同开发,则首先先克隆项目文件到自己的文件夹,然后创建远程库的dev分支到本地开发:git checkout -b dev origin/dev将自己的分支push到远程仓库git push origin dev当自己需要push相同文件时,如果自己的dev分支没有与远程的链接,则需要:git branch --set-upstream dev origin/dev(git branch --set-upstream branch-name origin/branch-name)因为远程仓库中的文件比本地的新,因次有冲突,需要pull下来合并后在push:git pull

标签

为最新HEAD版本打标签:git tag v1.0查看所有标签:git tag给指定版本号打标签:git tag v2.0 jf893s查看标签信息:git show v1.0创建带有说明的标签:git tag -a v0.1 -m "version 0.1 released" 3628164删除本地标签:git tag -d v0.9推送某个标签到远程:git push origin v0.8一次性推送所有未推送的标签:git push origin --tags删除已经推送的标签:git tag -d v1.0git push origin :refs/tags/v1.0

参加开源项目

参加开源项目步骤:访问项目主页->点击Fork(此时自己已经clone了一份在自己的github仓库)->克隆到本地git clone git@github.com:michaelliao/bootstrap.git



0 0
原创粉丝点击