MY UBUNTU
安装:
sudo apt-get install git
选定的目录为git的工作区。该目录下的任何改动,git都会记录为工作区的修改,而不会提交至版本库(需add和commit操作)。
提交至git的文件必须在该工作目录或者其子目录。
git版本库包括stage(暂存区)和master(git默认创建的一个分支)。
文件"add"操作只是将文件添加到git的暂存区,经"commit" 才将文件的更改提交至master。
关于文件版本:
每个文件都有一个指针(HEAD)指向当前版本,当需要修改版本时,只需更改指针即可。(也就是版本id)
创建仓库:
查看当前目录:pwd
创建git仓库: git init // 将当前目录加入到git仓库中
添加和更新文件:
git add <文件名>
git commit -m <"操作描述"> // -a 将文件版本添加并更新至git
删除文件:
git rm <文件名>
git commit -m <"操作描述">
查看工作区状态:
git status
查看修改的内容:
git diff <文件名>
查看提交历史:
git log [--pretty = online] // 查看最近更改的日志
查看命令历史:
git reflog
选择历史版本:
git reset --hard HEAD^ // 回到上一个版本 HEAD~10 回到上10个版本
回到最新版本:
git reset --hard <最新版本id> // id 是 一个hash数,只需输入前几个数,git会自动寻找相应的版本
// 若id在历史版本中查看不到,则查看历史命令,其中记录了每次操作的文件版本id
撤销工作区的修改:
git checkout -- <文件名> // 将工作区的文件更新为版本库里的最新版本(也可用于恢复文件至工作区)
撤销暂存区的修改:
git reset HEAD <文件名> // 将修改撤销到工作区
创建远程库:
git remote add origin git@github.com:April53/python.git
推送本地库到远程库:
git push -u origin master // 本地分支master 远程库默认名 origin
// 由于远程库是空的,我们第一次推送master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的
git push origin master //master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。
从远程库克隆到本地:
git clone git@github.com:April53/python.git
分支操作:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge [--no-ff
] <name> // --no--ff 记录合并历史
删除分支:
git branch -d <name>
bug分支:
git stash // 存储工作分支状态