Git常见用法汇总
生成本地ssh: ssh-keygen -t rsa -C "[email protected]" (路径选择默认密码空,路径为/c/Users/[userid]/.ssh/id_rsa)
创建版本库: git init
把文件添加到版本库: 首先在版本库新建出文件
git add readme.txt
git commit -m "wrote a readme file"
一.版本控制
git status 查看仓库当前状态
git diff readme.txt 查看具体修改内容
git log --pretty=oneline显示提交日志 --显示commit id
git reset --hard HEAD^回退上一个版本(^^回退两个版本 ~回退n个版本)
git reset --hard [commit id]回到commit id的版本
git reflog显示进行过的每一次命令
~/.git为版本库不属于工作区,每次add之后,文件被添加到stage(暂存区),commit之后提交到当前分支(master)
git diff HEAD -- readme.txt查看工作区和版本库里最新版本区别
git checkout -- readme.txt撤销文件在工作区的修改,两种情况:1.readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态2.readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态
git reset HEAD readme.txt把暂存区的修改撤销掉(unstage),重新放回工作区
git rm test.txt
git commit -m “remove test.txt”版本库删除文件并commit,误删可用chekout恢复
二.远程仓库
git remote add origin [email protected]:userid/remote_repo_id.git将本地仓库与远程仓库关联(远程库的名字就是origin,也可以改成别的)
git push -u origin master把本地库所有的内容推送到远程库上,-u起到分支关联作用
git push origin master本地master分支推送至GitHub
git clone [email protected]:xxxxx/xxxxx.git克隆一个远程库到本地库
<!--[if !supportLists]-->三.<!--[endif]-->分支管理
git checkout -b dev创建dev分支并且切换到dev分支
或者
git branch dev新建一个分支dev
git checkout dev切换到分支dev
git brach查看当前分支,*为当前分支
git merge dev合并dev分支到master
git branch -d dev删除dev分支
git merge --no-ff -m “merge with no-ff” dev禁用Fast forward且合并dev分支
git log --graph --pretty=oneline --abbrev-commit查看log(--graph可以看到分支合并图)
(禁用Fast forward的分支合并图)
git stash储存工作现场(用git status查看之后是干净的)
git stash list查看工作现场
git stash pop恢复现场并删除stash内容
或
git stash apply恢复工作现场
git stash drop删除stash
git branch -D feature-vulcan强行删除一个没有merge过的分支feature-vulcan
git remote -v查看远程库的信息(-v查看更详细的信息)
git push origin master将master分支上的所有本地提交推送到远程库origin上
多人协作示例:A:git [email protected]:xxxxx/xxxxxx.git
git branch
git checkout -b dev origin/dev(创建远程dev分支到本地)
git commit -m “add /usr/bin/env”
git push origin dev
B:git add hello.py
git commit -m “add coding: utf-8”
git push origin dev(假设此时产生了冲突)
git branch --set-upstream dev origin/dev(将本地dev与远程dev链接)
git pull