本地版本库基本操作
git init
将当前所在目录初始化成一个git仓库git add <文件名>
把文件添加到暂存区git commit -m “<提交日志>”
把暂存区的所有内容提交到当前分支PS:当文件修改后提交也同样用这两步
git status
查看仓库当前的状态git diff
查看当前未提交的修改和之前有什么差别git log
查看提交日志(显示内容较多)git log –pretty=oneline
查看提交日志(显示内容较少)git reset –hard HEAD^
回退到上一个版本,head指向的版本就是当前版本,回退一个版本加用一个^,回退两个版本则用两个^,以此类推git reset –hard
切换到版本号对应的指定版本git reflog
查看历史命令,通常用来获取版本号git checkout – <文件名>
撤销文件在工作区的修改,用版本库中的版本替换工作区中的版本,即将工作区中的文件与版本库中的文件同步。git reset HEAD <文件名>
把文件从暂存区撤销,重新放回工作区。如果文件已经提交到本地版本库,那只能回退到上一个版本来撤销了。如果已经提交到远程版本库,那就没辙了。git rm <文件名>
若想从版本库删除删除某一文件,先删除工作区中对应的文件,然后调用该命令,然后commit;
远程仓库
关联本地仓库到远程库
git remote add origin <远程仓库URL>
关联一个远程仓库git push -u origin master
推送master分支到远程的master分支(origin/master)
PS:由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。git push origin master
推送本地master分支内容到远程master(第一次推送之后)
从远程仓库克隆仓库
- git clone <远程仓库URL>
将远程仓库克隆到本地
PS:Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。
分支管理
分支操作
git branch
查看分支git branch
创建分支git checkout
切换分支git checkout -b
创建+切换分支git merge
合并某分支到当前分支
PS:当前分支就是HEAD指向的分支,因此在合并分支前先切换到主分支(master),再将要目标分支合并git branch -d
删除分支git log –graph
可以查看分支合并图git branch -D
在没有合并的情况下强行删除一个分支git checkout -b <本地分支名> origin/<远程分支名>
创建远程origin的分支到本地
多人协作
首先,可以试图用git push origin <分支名> 推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull 试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin <分支名> 推送就能成功!
PS:如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch –set-upstream <本地分支名> origin/<远程分支名> 。