一 本地仓库git
1 安装gitgithub
sudo apt-get install git
2 安装完成后进行设置网络
git config --global user.name ' username ' git config --global user.email 'email'
3 建立版本库。首先建立一个空目录,而后把这个目录变成git能够管理的仓库app
mkdir mygit cd mygit git init
使用ls -ah能够查看该目录下有一个.git文件ssh
4 添加文件readme.txt到仓库,把文件提交到仓库ui
git add readme.txt #添加文件 git add #修改文件后可直接使用git add将修改保存到暂存区 git commit -m 'wrote a readme.txt' #-m 后面是本次提交的说明,git commit只负责提交把暂存区的修改提交
git status #查看结果 git diff HEAD -- readme.txt #查看工做区和版本库最新版的区别,显示的是unix通用的diff格式 git log #查看提交历史记录 git log --pretty=oneline #简版(一个提交一行)展现git log命令结果,等号左右两边不能有空格 git reflog #查看命令历史记录,这样能够找到已删除的提交版本号
5 HEAD 表示当前版本,即最近一次提交unix
HEAD^ 上一个版本code
HEAD^ 上上一个版本server
HEAD~100 往上一个版本rem
git reset --hard HEAD^ #回退到上一个版本 git reset --hard 3628164 #数字是版本号的部分,命令表示回到版本号所对应的版本,版本号可由git log获得
6 撤销修改
命令git checkout -- readme.txt
意思就是,把readme.txt
文件在工做区的修改所有撤销,这里有两种状况:
一种是readme.txt
自修改后尚未被放到暂存区,如今,撤销修改就回到和版本库如出一辙的状态;
一种是readme.txt
已经添加到暂存区后,又做了修改,如今,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit
或git add
时的状态。
git checkout -- file #撤销的是add或commit后又作的修改,撤销对工做区的修改 若是没有 -- 这变成转到另外一个分支的命令 git reset HEAD file #撤销对暂存区的修改,让已add的文件回到未add的状态
7 删除文件
直接在文件管理器中把文件删了,或用rm命令删了
rm test.txt
从版本库中删除
git rm test.txt git commit -m '...'
能够从之前的版本库里恢复文件
git checkout -test.txt
二 远程仓库
1 在用户主目录下建立SSH Key,并在github中account settings 的SSH keys页面把建立的.ssh/id_rsa.pub文件的内容复制到ADD SSH Key里,title任意
ssh -keygen -t rsa -C 'email'
2 添加远程库
git remote add origin git@server-name:path/repo-name.git
3 把本地库的内容推送到远程库上
git push -u origin master #第一次推送 git push origin master #之后推送
4 从远程库中克隆
git clone git@server-name:path/repo-name.git
5 建立与合并分支
建立并切换到分支dev
git checkout -b dev #至关于 git branch dev git checkout dev ############## git branch #查看当前分支 git merge dev #合并分支 git branch -d dev #删除分支 git log --graph --pretty=oneline --abbrev-commit #查看分支状况 git log --graph #查看分支图
Fast forward模式,删除分支后会去掉分支信息,禁用Fast forward:
git merge --no-ff -m '....' dev
6 Bug分支
git stash #保存现场 git stash list #查看保存的现场 git stash pop #恢复现场 至关于: git stash apply git stash drop ##################### git branch -D <branch-namde> #丢弃没有合并的分支
7 查看远程库信息
git remote git remote -v #显示更详细信息 git pull #抓取最新的提交
8 将本地分支dev与远程origin/dev分支连接,这里建立的是跟踪分支。另外还有远程跟踪分支,
远程跟踪分支是远程分支状态的引用。 它们是你不能移动的本地引用,当你作任何网络通讯操做时,它们会自动移动。 远程跟踪分支像是你上次链接到远程仓库时,那些分支所处状态的书签。
它们以 (remote)/(branch)
形式命名。
git branch --set-upstream dev origin/dev
9 在本地建立与远程分支对应的分支
git checkout -b branch-name origin/branch-name
10 标签
git tag <name> #打标签 git tag #查看标签 git tag <name> <commit-id> #给之前的版本打标签 git show <tagname> #查看标签信息 git tag -a <tag-name> -m '....' #建立带说明的标签 -a 指定签名 -m 指定说明文字 git tag -s <tag-name> -m '....' #建立带PGP签名标签 git tag -d <tag-name> #删除标签 git push origin <tag-name> #推送标签到远程 git push origin --tags #一次性推送所有未推送到远程的标签 ###删除已经推送到远程的标签 : #1 先从本地删除 git tag -d <tag-name> #2 从远程删除 git push origin :refs/tags/<tagname>
11 其余配置
git config --global color.ui true #配置颜色 .gitignore #忽略文件