网页内容搜索快捷键
Ctrl+F
安装Git (ubuntu)
sudo apt-get install git
创建一个Git仓库,初始化使用
mkdir git_name
cd git_name
git init
显示当前目录
pwd (print working directory的缩写)
显示隐藏目录
ls -ah
- 添加要提交的文件
git add the_file_you_changed
- 提交
git commit -m'what_you_change_in_your_file'
显示当前已修改但没有提交的文件
git status
显示具体修改内容
git diff
查看历史记录(可显示为一行,添加–pretty=oneline)
git log
版本回退
git reset --hard head^(head是当前版本,一个^代表回退一次,可输入多个)
或者 git reset --hard head~1(数字代表你要回退的版本次数)
查看未来的版本,并git回去(即从当前版本git到之前版本,丢失的之前后面的版本)
git reflog得到版本记录(版本id+注释)
git reset --hard 版本id
显示文件内容
cat your_file_name
取消add后的对文件的再次修改内容或者取消上次commit之后的修改但本次没有add的文件
git checkout -- the_file_you_changed
将add后的文件修改内容撤回到工作区(正常编写区)
git reset head -- the_file_you_changed(只撤销了最近一次)
(上面俩个组合使用几乎可解决大部分问题)
在提交后删除了本地工作区文件想要从版本库也删除该文件
git rm test.txt
git commit -m "remove test.txt"
(接上)从版本库恢复刚才删掉的本地工作区文件
git checkout -- test.txt
连接.关联远程仓库
git remote add origin git@github.com:your-id/your-project.git(注意后缀名 .git)
创建秘钥(生成后在C:\Users\Administrator/.ssh)
ssh-keygen -t rsa -C "youremail@example.com"
SSH推送
git remote add origin git@github.com:unexpected-ads/learngit.git
git push -u origin master
SSH第二次及之后推送
git push origin master
HTTPS推送
git remote add origin https://github.com/unexpected-ads/learngit.git
git push -u origin master
创建新的dev分支并切换到dev
git checkout -b dev
git branch dev(创建)
git checkout dev(切换)
查看当前分支
git branch
合并指定分支(dev)到当前分支(master)
git merge dev
删除分支(dev)
git branch -d dev
fast foward模式合并时产生合并时的分支(dev)信息(fast foward默认的merge合并模式时如果没有问题则删除分支后会丢失分支信息)
git merge --no-ff -m "merge with no-ff" dev
暂存当前工作stash工作现场
git stash
显示所有工作现场
git stash list
选择工作现场恢复
git stash apply直接恢复但保留存储的工作现场
git stash drop直接删除
git stash pop恢复并删除存储的工作现场
git stash apply stash@{number}从stash list中选择恢复
强制删除已提交但未合并的分支
git branch -D your-branch-name
查看远程库信息
git remote
查看远程库详细信息
git remote -v
推送到远程库
git push origin master(master是主分支,可以推送到别的分支,可自行更改)
推送失败,获取新的文件
git pull
设置本地与远程的分支连接
git branch --set-upstream dev origin/dev
克隆远程仓库
git clone git@github.com:target-id/target-project.git(注意后缀 .git)
强制删除
git rm -rf file_or_directory
重新设置head指针
git reset --hard HEAD
在本地创建和远程分支对应的分支
git checkout -b branch-name origin/branch-name
建立本地分支和远程分支的关联
git branch --set-upstream dev(本地名) origin/dev(远程名)
打标签
git tag v1.0
在一行显示所有历史commit的id
git log --pretty=oneline --abbrev-commit
用id打标签
git tag v0.9 commit-id
查看标签信息
git show v0.9
可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:
git tag -a v0.1 -m "version 0.1 released" 3628164
还可以通过-s用私钥签名一个标签:签名采用PGP签名,因此,必须首先安装gpg(GnuPG),如果没有找到gpg,或者没有gpg密钥对,就会报错
git tag -s v0.2 -m "signed version 0.2 released" id
删除标签
git tag -d v0.1
推送到远程仓库的标签
git push origin v1.0
一次性推送全部尚未推送到远程的本地标签
git push origin --tags
删除远程仓库的git标签(先删本地,在推送删除)
git tag -d v0.9
git push origin :refs/tags/v0.9
删除已连接的origin远程仓库
git remote rm origin