创建版本库
git init(初始化版本库)
git add(在git里增加东西)(要保存才能add)
git commit -m"……"(写备注)
文件变动
git add(直接把改动的文件加入后commit)
版本回退
git log(查看版本改动次数及每次改动的内容)--pretty=oneline(只输出一行)--graph(画出当前分支图)
**git reset --hard HEAD^**(回溯到上一个版本)
git reset --hard (ID)(回溯到某一个版本)
git relog(查看做了多少次版本的回溯或前进)
cat (文件名)(查看当前版本内容)
版本的修改
工作区的文件不会被git commit提交到master分支,只有暂存区的会
git status(可以查看当前工作区与暂存区的状态)
git diff head (分支名)(可以看工作区与最近修改版本的差别)
git checkout -- readme.txt(清空工作区的东西,回到原先版本或暂存区中的版本)
git reset HEAD file(清空暂存区,回到原先版本)
rm (文件名)(在文件夹中删除文件)
git rm (文件名)(在版本库中删除文件)
git checkout (文件名)(在版本库中找到对应的文件,重新生成到文件夹中)
在Github中添加远程库
git remote add origin git@github.com:(GitHub中的名字)/learngit.git(在git仓库下运行)
git push (-u)'远程库是空的要加这个' origin master
git clone git@github.com:(账号名)/(文件名).git(前提是该文件在创建时要选为可复制)(一定要注意账号名前有个冒号)
注:如果在添加远程库时遇到问题,可以看这个,里面也列举了我当时碰到的一些问题,希望对读者有帮助https://blog.csdn.net/qq_40472064/article/details/79796898
分支管理
git checkout -b dev(创建并转到dev分支)
git branch (查看当前分支)
可以在这个分支上add、commit东西,不会影响master分支
git checkout (分支名)(转到某一分支)
git merge (--no-ff)"不使用Fast forward,不删除分支上的文件"(分支名)(将dev分支合并到当前分支上)(一般使用这个)
git branch -d (分支名)(删除这一分支)
如果分支合并冲突应该在合并后的分支上手动添加需要被合并的分支,然后删除分支
bug分支
git stash(存储当前工作区)
git stash apply(恢复到该分支上)
git stash drop(删除)
git stash pop(恢复并删除)
git stach list(查看stach列表)
feature分支(调试功能建立)
多人协作
git remote (-v)(查看远程信息)
git push origin branch-name(推送自己的修改)
git pull <远程主机名> <远程分支名>:<本地分支名>(取回远程主机某个分支的更新,再与本地的指定分支合并)(如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并)(如果合并有冲突,则解决冲突,并在本地提交)
没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功
git branch --set-upstream branch-name origin/branch-name(如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建)
git push <远程主机名> <本地分支名>:<远程分支名>(与git pull类似)
标签
git tag (文件名) (用于新建一个标签,默认为HEAD,也可以指定一个commit id)
git tag -a (标签名) -m "..."(可以指定标签信息)
git tag -s (标签名) -m "..."(可以用PGP签名标签)
git tag(可以查看所有标签)
git show (标签名)(看标签信息)
git push origin (标签名)(可以推送一个本地标签)
git push origin --tags(可以推送全部未推送过的本地标签)
git tag -d(标签名)(可以删除一个本地标签)
git push origin :refs/tags/(标签名)(可以删除一个远程标签)
GitHub
fork(把别人库中的东西弄到自己的库中来,在GitHub页面上)
git clone git@github.com:michaelliao/bootstrap.git(要在自己的账号下克隆开源项目)(然后可以在自己的本地库中修改项目)
pull request(可以向官方库发送请求看他接不接受你的修改)
总结
以上均是用命令行来操控Git,在熟悉Git操作后推荐直接用Git的桌面版(GitHub Desktop),方便快捷