cd ls / ls -a clear mkdir rmdir echo "hi, good day" > hi.txt touch hello.txt //建立文件 cat hi.txt //打印文件内容 cat -n hi.txt 带行号打印 rm hello.txt //删除文件 vim hi.txt //vim编辑hi.txt 同 vi hi.txt help tar // tar --help 解压 tar -xvzf mypro.tat.gz whoami //当前用户
//光标定位 Ctrl-A 至关于HOME键,用于将光标定位到本行最前面 Ctrl-E 至关于End键,即将光标移动到本行末尾 Ctrl-B 至关于左箭头键,用于将光标向左移动一格 Ctrl-F 至关于右箭头键,用于将光标向右移动一格 //删除字符 Ctrl-D 至关于Del键,即删除光标所在处的字符 Ctrl-K 用于删除从光标处开始到结尾处的全部字符 Ctrl-U 用于删除从光标开始到行首的全部字符。通常在密码或命令输入错误时经常使用 Alt-BackSpace 用于删除本行全部的内容,基本上和Ctrl-U相似。 Ctrl-H 删除光标左侧的一个字符 Ctrl-W 用于删除当前光标左侧的一个单词 //清屏 Ctrl-L 清屏,至关于clear命令 //导航历史命令 Ctrl-R 进入历史命令查找状态,而后你输入几个关键字符,就能够找到你使用过的命令 Ctrl-P 至关于上箭头键,即显示上一个命令 Ctrl-N 至关于下箭头键,即显示下一个命令 Alt-. 用于提取历史命令中的最后一个单词。你先执行history命令,而后再敲击此快捷键若干下,你就懂了! Ctrl-T 用于颠倒光标所在处字符和前一个字符的位置。(目前不知道有什么做用,哪位朋友知道?) Ctrl-J 至关于回车键 //大小写转换 Alt-C 用于将当前光标处的字符变成大写,同时本光标所在单词的后续字符都变成小写。 Alt-L 用于将光标所在单词及所在单词的后续字符都变成小写。 Alt-U 用于将光标所在单词的光标所在处及以后的全部字符变成大写。
#设置 git config --global user.name "youname" git config --global user.email "youemail" git config --global hello.test onlytest //全局配置文件位于 %userprofile%/.gitconfig, 本地配置指cmd的当前工做目录 #获取 git config --get user.name git config --get-all user.name //从各个级别(本地 全局)的配置文件中取配置值 git config --get-regexp user* //用正则指定想获取的配置项 #删除 git config --global --unset hello.test git config --global --remove-section hello #显示 git config -l git config --global -list #显示帮助 git config -h //命令行里显示简要帮助 git config --help //浏览器打开git安装目录下的html帮助文件
//建立目录 初始化本地git仓库 mkdir myproject cd myproject git init //建立空的git仓库或从新初始化已有的仓库,建立.git目录(objects, refs/heads, refs/tags, HEAD和模板文件) git init-db //同 git-init git fsck //检查仓库有没有错误 git gc //用垃圾回收机制清除因为reset形成的垃圾代码
working(工做目录) -> index(暂存区) -> HEAD(本地仓库)
git add <file> / git add . git commit -m "some comments" git commit -a -m "add and commit"
git diff //工做目录 和 index的差别比较 git diff --cached//index和HEAD(最近一次提交)的差别比较 git diff HEAD //工做目录同HEAD的比较 git diff <branch1>..<branch2> #分支比较 git status //当前分支状态
git log / git log -p git log <tag1>..<tag2> //显示两个标签之间的提交日志 git log <tag1>.. //显示tag1标签以后的提交日志 git log --since="2 weeks ago" git log -n 3 //查看最近3次的提交日志 git log v1.0.. somefolder //somefolder从v1.0后的提交日志 gitk --since="2 weeks ago" git show HEAD //查看最近一次提交日志
//git reset 是指 撤销到哪一个commitId,缺省commitId 则为HEAD git reset //若当前修改stage了,但未提交,则回退,HEAD->index git reset HEAD //HEAD->index 同上 git reset --hard HEAD //working tree, index file 都撤销到最后一次commit的状态 git reset --soft HEAD^ //恢复到上一次commit的代码 soft表示不改动index file和working tree git reset HEAD //默认是 --mixed, index file 和 commit都会撤销到最后一次commit以前的状态, working file不受影响。 git reset -- <file> //撤销某文件的staged状态 (git status查看变化) HEAD->index git reset -- . #撤销当前文件夹的staged状态 git rebase //重设基
#建立 git branch mybranch //建立分支 git checkout -b local_name origin/remote_name #基于远端分支建立新分支 如:git checkout -b dev origin/dev,做用是checkout远程的dev分支,在本地起名为dev分支,并切换到本地的dev分支 git branch <branchName> <tagName> //基于某标签创建分支 #查看 git branch -a //显示全部分支 git branch -r //显示远端分支 git branch //列出全部分支 git show-branch //显示全部分支 信息多一点 git branch -v //同上 #切换 合并 git checkout mybranch //切换分支 , git checkout -b otherBranch 建立并切换 git checkout master //do some change in master git merge mybranch //合并分支到主干 //如有冲突 手动解决冲突后,再次提交 vim <file> git commit -a -m "conflit resolved" //解决冲突后从新提交 gitk //可视化分支查看界面 #删除 git branch -d mybranch //分支合并到主干后 删除分支 git branch -D mybranch //不管分支是否合并 都执行删除
git remote add origin repoUrl //添加远端仓库 git remote show origin #显示远端仓库的详细信息(fetchUrl pushUrl, branches, "local branches configured for 'git pull'" , "local refs configured for 'git push' ")
git push origin localBranch:remoteBranch//推送数据 //本地master推送到远程的remaster 如: git push origin master:remaster
//检出代码到本地某文件夹, repoUrl能够为远端url或本地路径 //(注:只clone远端仓库的当前分支,并不是所有分支都clone过来) git clone <repoUrl> <localDir> //clone 远端仓库的某个分支 git clone -b <remote_branch> <remote_repo> //pull的意思是指从远端git仓库fetch修改的代码, //而后merge到本地的git仓库当前分支/指定分支中 git pull <repoLocalPath> master //根据本地分支-远程分支的对应关系从远端拉取更新 //如git clone的仓库和自动和远程仓库的default分支创建对应关系 git pull git fetch origin remote_branch_name:local_branch_name //拉取远端git仓库master分支到本地mybranch2分支 git fetch <remoteRepo> master:mybranch2
git show <commitid> //查看某个提交的信息,git log可得到commitid git show HEAD //HEAD能够认为是最近一次commit的 commitid 同 git log -n 1 -p git show HEAD^ //显示上一次commit的信息(parent commit) git show HEAD^^ //显示上上次commit git show HEAD~3 //显示前3次commit git show HEAD^1 //显示第1个上次commit(parent commit) git show <branchName> //显示分支信息最近一次提交的信息
git tag <tagName> //给最近的提交加标签 git tag v1.0 git tag <tagName> <commitid> //给某次commit加标签(起别名) git show <tagName> //显示某标签对应commit的信息
//查看git对象内容(tree, blob, HEAD ,index) git cat-file -t <id> //-t 获取id对应对象的类型 git cat-file commit <commitId> //查询一个commit对象 git cat-file blob <blobId> //查看二进制对象的内容 git ls-tree <treeId> //查看树对象 git ls-files --stage //查看index file的内容 cd .git cat HEAD
//内容搜索 git grep "keyword" <branchName> //在某分支的文件中 搜索关键字 git grep "keyword" //在全部历史记录中搜索
//获取帮助 git <command> -h //直接在命令行显示用法 git <command> --help //用浏览器打开对应的文档
commit -a
自动地add全部改动的代码到index file中, 删除在index file中但不在working tree中的文件,执行commithtml
git log -p
不只显示commit日志,同时显示每次commit的代码变更linux
合并两个或两个以上的分支,若自动合并(auto-merge)成功,则变动会被写入index file,须要再 commit 一下; 若发生冲突,则working tree
会处于一种特殊的状态(git status, git diff 查看冲突状况),手工解决冲突后,须要 git add <file>
git commit
git
若要撤销合并,则git reset --hard HEAD
//--hard表示将working tree和index file回退到以前的状态, soft表示撤销commit的修改,保留working tree和index file的, mixed则表示撤销index file 和commit的修改,保留working tree的github
用于从远端git仓库拉取更新, git fetch <options> <repo> <refspec>
(dst为空则用当前分支) , 如:
git fetch /home/lucy/myrepo master:lucyworks
从myrepo的master分支拉取内容到本地的lucyworks分支
用于从远端git仓库拉取更新并合并到本地的git仓库中, git pull
是 git fetch
和 git merge
命令的组合
如: git pull /home/lucy/myrepo
从myrepo目录拉取内容并合并到本地仓库的当前分支浏览器
git pull .
至关于git merge
, 如: git pull . mybranch
.
表示当前仓库, 忽略了
给commit起别名, git tag V3.2 5b88c
, git show V3.2
app
只需将开发的文件夹copy到须要的位置便可,须要恢复时,执行一下 git init
便可。测试
git remote update #更新远程主机的数据? 如远端增长或删除分支 git remote show origin #显示远程主机origin的信息 **很实用** git remote -v #查看远端仓库的配置信息 cat -n .git/config #查看本地配置文件
# 本地修改文件后,不但愿commit到远端仓库能够这样 git commit -m "commit part of changes" -- folderName_or_fileName git commit --amend # 修改最后一次提交记录
# 显示某次提交的内容 git show commitId git show tag1 git show HEAD^ git show branchName
git checkout branchName #一般用于切换分支 #撤销未暂存的修改 git checkout -- <file> # 抛弃未staged的某文件的修改 (index->workspace) git checkout . # (未staged的状况下)抛弃工做区修改
git rm <file> # 从版本库中删除文件,同时从工做目录删除文件 git rm <file> --cached # 从暂存区中删除文件,但不删除工做目录中对应文件
git revert commitId # 恢复某次提交的状态,恢复动做自己也建立次提交对象 git revert HEAD # 恢复最后一次提交的状态
git diff <file> # 比较当前文件和暂存区文件差别 git diff git diff <commitId1>..<commitId2> # 比较两次提交之间的差别 git diff <branch1>..<branch2> # 在两个分支之间比较 git diff --staged # 比较暂存区和版本库差别 git diff --cached # 比较暂存区和版本库差别 git diff --stat # 仅仅比较统计信息
git log <file> # 查看该文件每次提交记录 git log -p <file> # 查看每次详细修改内容的diff git log -p -2 # 查看最近两次详细修改内容的diff //同 git log -p -n 2 git log --stat #查看提交统计信息
#查看、切换、建立和删除分支 git branch -r # 查看远程分支 git branch <new_branchanch> # 建立新的分支 git branch -v # 查看各个分支最后提交信息 git branch --merged # 查看已经被合并到当前分支的分支 git branch --no-merged # 查看还没有被合并到当前分支的分支 git checkout <branch> # 切换到某个分支 git checkout -b <new_branch> # 建立新的分支,而且切换过去 git checkout -b <new_branch> <branch> # 基于branch建立新的new_branch git checkout commitId # 把某次历史提交记录checkout出来,但无分支信息,切换到其余分支会自动删除 git checkout commitId -b <new_branch> # 把某次历史提交记录checkout出来,建立成一个分支 git branch -d <branch> # 删除某个分支 git branch -D <branch> # 强制删除某个分支 (未被合并的分支被删除的时候须要强制) #分支合并和rebase git merge <branch> # 将branch分支合并到当前分支 git merge origin/master --no-ff # 不要Fast-Foward合并,这样能够生成merge提交 git rebase master <branch> # 将master rebase到branch, 至关于: git checkout <branch> && git rebase master && git checkout master && git merge <branch> Git补丁管理(方便在多台机器上开发同步时用) git diff > ../sync.patch # 生成补丁 git apply ../sync.patch # 打补丁 git apply --check ../sync.patch #测试补丁可否成功
git stash # 暂存 git stash list # 列全部stash git stash apply # 恢复暂存的内容 git stash drop # 删除暂存区
git pull # 抓取远程仓库全部分支更新并合并到本地 git pull --no-ff # 抓取远程仓库全部分支更新并合并到本地,不要快进合并 git fetch origin # 抓取远程仓库更新 git merge origin/master # 将远程主分支合并到本地当前分支 git checkout --track origin/branch # 跟踪某个远程分支建立相应的本地分支 git checkout -b <local_branch> origin/<remote_branch> # 基于远程分支建立本地分支,功能同上 git push # push全部分支 git push origin master # 将本地主分支推到远程主分支 git push -u origin master # 将本地主分支推到远程(如无远程主分支则建立,用于初始化远程仓库) git push origin <local_branch> # 建立远程分支, origin是远程仓库名 git push origin <local_branch>:<remote_branch> # 建立远程分支 git push origin :<remote_branch> #先删除本地分支(git br -d <branch>),而后再push删除远程分支
GitHub git remote -v # 查看远程服务器地址和仓库名称 git remote show origin # 查看远程服务器仓库状态 git remote add origin git@ github:robbin/robbin_site.git # 添加远程仓库地址 git remote set-url origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址(用于修改远程仓库地址) git remote rm <repository> # 删除远程仓库 建立远程仓库 git clone --bare robbin_site robbin_site.git # 用带版本的项目建立纯版本仓库 scp -r my_project.git git@ git.csdn.net:~ # 将纯仓库上传到服务器上 mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在服务器建立纯仓库 git remote add origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址 git push -u origin master # 客户端首次提交 git push -u origin develop # 首次将本地develop分支提交到远程develop分支,而且track git remote set-head origin master # 设置远程仓库的HEAD指向master分支 也能够命令设置跟踪远程库和本地库 git branch --set-upstream master origin/master