https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
我把git命令都按顺序记录...(sudo可以用sudo su去掉..)
安装git:
apt-get install git
创建目录:
mkdir learngit
用cd命令进入..
创建git仓库(初始化):
git init
配置一下姓名和邮箱:
git config user.name "jax"
git config user.email "[email protected]"
创建一个文件:
touch readme.txt
添加该文件:
git add readme.txt
编辑文件内容:
vim readme.txt
插入:
i
保存退出:
esc
:wq!
提交:
git commit -m "commit one file"
修改文件,然后查看修改:
git diff
重新上传:
git add readme.txt
查看状态:
git status
查看日志:
git log
回到上一个版本:
git reset --hard HEAD^
查找版本id:
git reflog
根据版本id回到版本:
git reset --hard HEAD a706b3d
撤销修改:
git checkout -- readme.txt
删除文件:
git rm readme.txt
git commit -m "remove readme.txt"
设置秘钥:
ssh-keygen -t rsa -C "[email protected]"
回车回车回车...
找到公共秘钥:
cd ~/.ssh
查找和复制公钥:
cat id_rsa.pub
登陆GitHub,点击setting,点击SSH and GPG keys添加公钥,添加一个learngit仓库
检查ssh:
ps -e|grep ssh
如果只有agent,安装openssh-server:
sudo apt-get install openssh-server
本地仓库关联:
git remote add origin [email protected]:jaxma/learngit.git
(无法关联或者出错,删除远程仓库:git remote rm origin)
推送远程仓库:
git push -u origin master
创建dev分支:
git checkout -b dev
列出所有分支:
git branch
合并到master分支:
先切换到master分支 git checkout master
后合并 git merge dev
删除分支:
git branch -d dev
强制删除 git branch -D dev
查看分支合并情况:
git log --graph
git log --graph --pretty=oneline --abbrev-commit
储存工作现场(分支)
git stash
新建bug分支
git checkout -b inssue-101 这时上面储存的分支进行的文件改动在这个分支下是看不到的
提交、合并bug分支,删除bug分支
git merge --no-ff -m "merged bug fix 101" issue-101
git branch -d issue-101
查看工作现场
git stash list
恢复的同时把stash内容也删了
git stash pop
恢复指定stash内容
git stash apply stash@{0}
查看远程库的信息
git remote -v
创建远程origin的dev分支到本地
git checkout -b dev origin/dev
推送分支到远程库
git push origin dev
推送失败,抓取远程最新提交
git pull
抓取远程最新提交失败,指定本地分支和远程分支在链接
git branch --set-upstream dev origin/dev
创建标签
git tag v1.0
找到历史提交的commit id并创建标签
git log --graph --pretty=oneline --abbrev-commit
git tag v1.0 0123456
查看所有标签
git tag
查看标签信息
git show v1.0
gpg(GnuPG)生成公钥和密钥,公钥给对方加密,密钥自己解密
通过-s
用私钥签名一个标签
git tag -s v1.0 -m "mytag" 0123456
推送标签到远程
git push origin v1.0
一次性推送本地标签到远程
git push origin --tags
删除本地标签
git -d tag v1.0
删除远程标签
git push origin :refs/tags/v1.0
码云
找到公共秘钥:(sudo su)
cd ~/.ssh
cat id_rsa.pub
选择右上角用户头像 -> 菜单“修改资料”->SSH公钥 填好提交
控制面板->点加号创建新项目
同时对github和gitee进行关联
先删除原本对github的关联
git remote -v查看
git remote rm origin 删除
重新关联github,将origin改成github
git remote add github [email protected]:jaxma/learngit.git
本地和码云远程库关联
git remote add gitee [email protected]:jaxma/learngit.git
分别推送
git push github master
git push gitee master
git显示不同颜色
git config --global color.ui true
配置别名(status)
git config --global alias.st status
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"(这个666)
配置文件路径
.git/config