git init
:会在本地当前目录下建立一个git仓库git clone https://github.com/username/a.git
:下载远程库到本地git remote add origin git@server-name:path/repo-name.git
:关联一个远程仓库,前提是已经在gitlab上建立了一个仓库git push -u origin master
:第一次把本地工程推送到远程仓库,以后直接git push
便可git log
查看提交历史,可肯定回退到哪一个版本git log --pretty=oneline
查看提交历史,更好看而已git reflog
查看已执行的命令历史,可肯定回退到哪一个版本三种状态+远程库:html
执行 add 添加命令后:git
执行 commit 提交命令后:github
git checkout -- fname
)git add fname
后,处于暂存区(撤销:git reset HEAD fname
)git commit -m "desc"
后,提交到了分支(撤销:git reset --hard commit_id
)git push
后,代码就推到了远程库git checkout -- fname
,就回到了和版本号同样的状态git checkout -- fname
就回到了添加到暂存区后的状态agit reset HEAD fname
,就把暂存区的修改撤销了,回退到工做区状态;再执行git checkout -- fname
就撤销了工做区的修改,回到了和版本库同样的状态git reset --hard commit_id
就撤销了提交,回退到了暂存区状态$ git log // 查看历史版本号(每条历史记录的第一行commit后的是版本号,拷贝前5个字符以上便可) $ git reset --hard 【版本号】 // 回滚
示例:缓存
$ git log commit 8a2b2261128388b3a84bc82aae46d7fbc47510df (HEAD -> lsy-practise, origin/lsy-practise) Merge: 44950c2 1f16ec9 Author: liushunyun <liushunyun@58.com> Date: Tue Aug 13 16:25:46 2019 +0800 删除拆分前的代码 commit 44950c242585dbc925ed8f0e4da3d96383ecfb22 Author: liushunyun <liushunyun@58.com> Date: Sun Aug 11 10:25:28 2019 +0800 test commit 1f16ec94f8a5ab42e6b3d03bc6ba27720a3b55c7 (origin/master, origin/HEAD, master) Merge: 1c56749 6b202fe Author: root <root@bjm6-19-154.58os.org> Date: Fri Aug 9 11:35:34 2019 +0800 version:4.3.16.0,branchName:20190809112714076_release_9683_etongzhen-sandbox,integrations:upload_img_fix
回滚:服务器
git reset --hard 8a2b22611 // 回滚到最近提交的那次,commit后的是版本号,取前边5个以上的字符便可
rm fname
:从工做区删除,撤销删除:git checkout -- fname
git rm fname
:从版本库中删除文件,完全删除:git commit
;撤销删除:git reset HEAD fname
,再git checkout -- b
便可彻底恢复git checkout -- fname
:把误删的文件恢复到最新版本,实际上是用版本库里的版本替换工做区的版本,不管工做区是修改仍是删除,均可以“一键还原”git branch dev
:建立dev分支git checkout dev
:切换到dev分支git checkout -b dev
:建立并切换到dev分支(从当前分支复制出dev新分支,注意push后再切换其余分支)git branch
:查看全部分支和当前分支git checkout -- fname
:注意:
是撤销工做区的修改git merge dev
:把dev分支合并到当前分支(如当前是master分支)git branch -d dev
:删除dev分支git push --set-upstream origin dev
:把本地分支push到远程仓库git checkout -b 本地分支名 origin/远程分支名
:从远程仓库拉取一条本地不存在的分支gitlab
master
分支建立新分支的dev2
进行开发:git checkout -b dev2
dev2
push到远程git push origin dev2
dev2
git pull
There is no tracking information for the current branch. Please specify which branch you want to merge with. See git-pull(1) for details. git pull <remote> <branch> If you wish to set tracking information for this branch you can do so with: git branch --set-upstream-to=origin/<branch> dev2 通过验证,当前的分支并无和本地分支关联,根据提示进行下一步:
git branch --set-upstream-to=origin/dev2
git pull
dev2
分支拉到本地(本地以前没有该分支)git checkout -b dev2 origin/dev2 fetch
若是成功,就会在本地自动建立新分支dev2
,并自动切换奥分支dev2
this
若是拉取不成功,须要执行 git fetch ;而后再执行上面的命令3d
参考:git从已有分支拉新分支开发日志
注意:
在分支上修改并commit后,当切换到master分支后是看不到,必须合并分支后才能够。
示例:
- 查看系统config:`git config --system --list` - 查看当前用户(global)配置:`git config --global --list` - 查看当前仓库配置:`git config --local --list`
查看当前仓库的用户名、邮箱:
git config user.name git config user.email
配置当前仓库的用户名、邮箱:
git config --local user.name zhangsan git config --local user.email zhang@126.com
git remote -v
即远程git的服务器地址git remote show origin
参考:https://www.liaoxuefeng.com/w...
参考:https://git-scm.com/book/zh/v...