配置
git init
把当前文件夹变成 git 可以管理的仓库cd..
去到文件夹上一层git config --global user.name "zhangxu"
告诉 git 我的用户名git config --global user.email "175325494@qq.com"
告诉 git 我的邮箱git config --global user.name
查看当前用户用户名git config --global user.email
查看当前用户邮箱git config --global user.name "zhangxu"
修改当前用户用户名为 zhangxugit config --global user.email "175325494@qq.com"
修改当前用户名为175325494@qq.comssh-keygen -t rsa -C "175325494@qq.com"
一路回车,创建 ssh 密匙,准备关联 GitHubcd /Users/zhangxu/.ssh
复制 id_rsa.pub 内容 >> GitHub >> Account settings >> SSH Keys >> Add SSH Key >> 填写 title >> Key 文本框里粘贴 id_rsa.pub 的内容git remote add origin git@github.com:zhangxu-github/FE.git
把本地的仓库和远程 GitHub 仓库关联起来
推送
git push -u origin master
把本地库的所有提交内容推送到远程库上(远程仓库地址,推送本地 master 到远程 master,第一次使用即可)-
git push origin master
把本地库的最新修改或提交内容推送到远程库上并不一定要把本地分支往远程推送
master 分支是主分支,因此要时刻与远程同步
dev 是开发分支,所有成员都要在上面工作,也需要与远程同步
克隆
-
git clone git@github.com:zhangxu-github/FE.git
把 github 上的 FE 仓库克隆到本地
分支
git branch dev
创建 dev 分支git branch --set-upstream dev origin/dev
关联本地分支和远程分支的链接关系git branch -d dev
删除 dev 分支git branch -D dev2
强行删除一个没有被合并过的分支git checkout dev
切换到 dev 分支git checkout -b dev
创建并切换到 dev 分支git checkout -b dev origin/dev
创建本地 dev 分支git merge dev
把 dev 分支的工作成果合并到当前分支上git merge --no-ff -m "merge with no-ff" dev
禁用快速合并的合并方法(没有历史记录)git pull
抓取远程仓库(把最新的提交从 origin / dev 抓下来,然后在本地合并,解决冲突,再推送)
查看
git status
查看当前工作区的状态ls -ah
查看当前文件夹详细信息cat file1.txt
查看工作区文件内容git diff
查看工作区和暂存区差异对比git diff --cached
查看暂存区和版本库差异对比git diff master dev
查看当前工作分支和版本库差异对比git diff HEAD --file.txt
查看工作区里的 file.txt 和版本库里最新的 file.txt 的区别git log
查看提交历史记录 回车可以一直查看更多 q 退出(查看提交 id )git reflog
提交和回退记录git log --graph
查看分支合并图git branch
查看分支列表git remote
查看远程仓库名(默认是 origin,不用更改)git remote -v
查看远程仓库地址(有权限才可以看到 push 的地址)
提交
git add .
把全部文件提交到暂存取git add file1.txt file2.txt
把 file1.txt 和 file2.txt 提交到暂存区git commit -a -m "explain" -a
把全部文件直接提交到版本库git commit -m "explain"
提交所有暂存区文件到版本库git commit --amend
撤销上一次提交操作git reset --hard HEAD~10
回到前 10 个版本git reset --hard 提交 id 号
回到前固定的 id 版本git checkout --file1.txt
将工作区修改过的文件还原至上一次暂存或提交的状态,先找暂存,没有再找提交git rm file1.txt
删除暂存的 file1.txt 文件(前提条件是工作区的 file1.txt 文件已经被你删除了)git rm -f file1.txt
把暂存和的工作区的 file1.txt 都删了git rm cached file1.txt
只删除暂存,不删除工作区的 file1.txt
标签
git tag v1.0
打一个新标签在当前分支上git tag
查看当前所有标签git tag v0.9 6224937
给历史提交打标签git tag -a v0.1 -m "version 0.1 released" 3628164
用-a指定标签名,-m指定说明文字git show v0.1
查看说明文字git tag -d v0.1
删除标签git push origin v1.0
推送某个标签到远程git push origin --tags
推送全部标签到远程git push origin :refs/tags/v0.9
从远程删除标签(先删本地)
多人协作
试用
git push origin branch-name
推送自己的修改如果推送失败,则因为远程分支比你的本地更新,需要先用
git pull
试图合并如果合并有冲突,则解决冲突,并在本地提交
没有冲突或者解决掉冲突后,再用
git push origin branch-name
推送就能成功如果,再失败,用命令
git branch --set-upstream branch-name origin/branch-name
创建关联