参考链接:https://www.liaoxuefeng.com/wiki/896043488029600
git
查看是否安装
sudo apt-get install git
安装
git config --global user.name "xxxx"
git config --global user.email xxxx@xx.com
–global参数表示这台机器上所有的Git仓库都会使用这个配置
mkdir [repo]
[xxx]里面要修改成自己的,不带[]
cd [repo]
pwd
显示当前目录
git init
把这个目录变成Git可以管理的仓库(空),此时多了.git是用来跟踪管理版本库的,所有文件建议UTF-8编码
git add [文件名]
添加到stage暂存区
git add --all
git commit -m "commit information"
将暂存区修改提交到仓库当前分支,可以多次add后一次commit
git status
掌握仓库当前的状态,如果有修改,git diff
可以查看修改内容
git log --pretty=oneline
显示从最近到最远的提交日志
git reset --hard HEAD^
HEAD表示当前版本,加一个^表示上个版本,或者用~100表示版本号
git reflog
记录每一次命令
git reset --hard [1094a]
回到id(前几位)指定的那个版本
git checkout -- file
把file文件在工作区的修改全部撤销,就是让这个文件回到最近一次git commit或git add时的状态
git reset HEAD <file>
可以把暂存区的修改撤销掉,重新放回工作区。命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本
git rm [file]
git commit -m "remove file"
添加远程仓库:
1)ssh-keygen -t rsa -C xxxx@xx.com
创建SSH Key,一路回车,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件
2)登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容,点“Add Key”
在本地的[repo]仓库下运行命令
git remote add origin git@github.com:xxxx/xxx.git
关联远程仓库,远程库的名字就是origin
git push -u origin master
第一次推送master分支的所有内容
之后只要本地作了提交可以通过git push origin master
推送修改
当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告,输入yes回车即可
git remote -v
查看远程库信息
git remote rm <name>
根据名字删除远程库
git clone git@github.com:xxxx/xxx.git
从远程库克隆
git checkout -b dev
创建并切换dev分支
git branch
命令查看当前分支(标*)
git checkout master
切换回master分支
git merge dev
将dev合并到当前分支(ff模式:这种模式会在删除分支后丢失信息)
git merge --no-ff -m "merge information" dev
git branch -d dev
删除dev分支
git switch -c dev
切换到dev分支
git switch master
切换到master分支
git log --graph
命令可以看到分支合并图
git stash
把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash pop
恢复现场并删除
git cherry-pick [4c805e2]
复制一个特定的提交到当前分支
git branch -D dev
强行删除分支dev(未合并的)
多人协作
git push origin [branch-name]
推送自己的修改;
git checkout -b dev origin/dev
创建远程origin的dev分支到本地
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
- 如果合并有冲突,则解决冲突,并在本地提交;
- 没有冲突或者解决掉冲突后,再用
git push origin <branch-name>
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>
。
git tag [tag name]
给当前分支打一个新标签,默认打在最新提交的commit上的
git tag [tag name] [commit id]
git tag
查看所有标签(按字母顺序,不是时间顺序),若要创建带有说明的标签,用-a指定标签名,-m指定说明文字
git show [tag name]
查看标签说明文字
git tag -d [tag name]
删除本地标签
git push origin [tag name]
推送某个标签到远程
git push origin –tags
推送所有标签到远程
git push origin :refs/tags/[tag name]
删除远程标签
多人协作
git clone git@github.com:xxxx/xxx.git
cd [PROJECT_ROOT]
git checkout -b [dev]
git add --all
git commit -m [YOUR_COMMENT]
git push https://github.com/xxxx/xxx.git [dev]