标签:strong git diff href ref 文件写入 一键 graph pop 研究
安装git: sudo apt-get install git
配置git:
git config --global user.name "your name"
git config --global user.email "you email"
--global:表示这台机器上所有的git仓库都会使用这个配置、当然也可以对某个仓库指定不同的用户名和Email地址。
创建git仓库: git init
添加文件:git add
提交文件:git commit
查看仓库当前状态:git status
查看文件是否同步:git diff
查看git提交日志:git log --pretty=oneline(参数可选)
版本回退:git reset --hard HEAD^
在git中,用HEAD表示当前版本,也就是最新提交的版本,上一个版本就是HEAD^,上上个是HEAD^^,上100个版本表示为HEAD~100
记录每一次git命令:git reflog
工作区和暂存区
工作区就是电脑里所看到的目录
.git中的index就是暂存区
我们把文件往Git版本库里添加的时候,是分两步执行的:
第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
撤销修改:git checkout -- file
git checkout -- file:表示把file文件在工作区的修改全部撤销
readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
git reset HEAD file:表示把file在暂存区的修改撤销掉
readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
就是让这个文件回到最近一次git commit或git add时的状态。
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
删除文件:git rm file
git commit -m‘remove file‘
如果文件删错了 也可以用git checkout -- file的方式恢复
git本地仓库和远程仓库的传输加密:
1、创建 SSH Key
ssh-keygen -t rsa -C"youremail@example.com"
2、登陆GitHub,打开“Account settings”,“SSH Keys”页面: 点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
关联远程仓库和本地仓库:
git remote add origin
git@github.com:themoonstone/ubuntu_git.git(必须要在git目录下)
把本地的内容推送到远程仓库:
git push -u origin master(在执行这个步骤的时候出现了“git ssh permission denied publickey”的错误、排查结果是ssh服务没有启动(真特么坑爹))
-u参数会把本地和远程的master关联起来
创建并切换新的分支:git checkout -b newbranch 参数-b表示创建并切换
分支合并:git merge newbranch
git merge:合并指定分支到当前分支
删除分支:git branch -d oldbranch
强制删除分支:git branch -D oldbranch
查看分支合并图:git log --graph
合并分支时,加上--no-ff参数可以使用普通模式合并,合并后的历史有分支。 另外一种是Fast forward模式,但在这种模式下,删除分支后会丢掉分支信息
保存当前工作:git stash
查看工作现场:git stash list
恢复工作现场:git stash apply(恢复但不删除stash内容) git stash pop(恢复并删除stash内容)
删除工作现场:git stash drop
恢复指定的工作现场:git stash apply@{0}
查看远程仓库信息:git remote
在本地创建和远程分支对应的分支:git checkout -b branch-name origin/branch-name
查看远程仓库详细信息:git remote -v 显示可以用于抓取和推送的地址
推送分支:git push origin master
设置本地dev分支与远程dev分支的连接:git branch --set-upstream dev origin/dev
抓取分支 :git pull
创建标签:git tag tagname
指定标签信息:git tag -a tagname -m‘infomation‘
查看所有标签:git tag
查看指定标签:git show tagname
删除本地标签:git tag -d tagname
推送一个标签:git push origin tagname
推送所有标签:git push origin --tags
删除远程标签:git push origin:refs/tags/tagname
配置git显示颜色:git config --global color.ui true
忽略指定文件,创建一个.gitignore 将要忽略的文件写入该文件 .gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!
强制添加文件:git add -f file
检查 .gitignore :git check-ignore -v file
配置别名:git config --global alias.st status
配置git last显示最后一条提交信息:git config --global alias.last ‘log -1‘
git config --global alias.lg "log --color --graph --pretty=format:‘%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset‘ --abbrev-commit"(这行还没研究)
配置文件:每个仓库的GIT配置信息都放在.git/config文件中 而当前用户的GIT配置信息放在用户主目录下的.gitcofig中
gitlab基础命令(转自大神网站)
标签:strong git diff href ref 文件写入 一键 graph pop 研究
原文地址:http://www.cnblogs.com/themoonstone/p/7590536.html