版本工具管理-git常见操作

225 阅读5分钟

命令行输入操作

1.git init 初始化git仓库

2.git add <file> 添加n个文件

3.git commit -m <message>添加说明信息

4.pwd 显示当前目录

5.ls 显示目录

6.ls -ah 显示隐藏目录

7.git status 可以让我们时刻掌握仓库当前的状态

8.git diff 查看diffrence 显示的格式是unix通用的diff格式

9.git log  显示从最近到最远的提交日志,如果信息太多,可以加上 --pretty = oneline

10. HEAD 当前版本,更准确地说,是当目前工作区(working directory)基于的那个版本。首先,本地改动不会改变 HEAD。其次,HEAD 本身就是一盒指针,绝大部分情况是指向 branch(比如 checkout 或者 reset 命令),但个别情况可以指向 commit,这种叫 detached HEAD

11. git reset —hard commit_id 回溯到当前历史版本

12.git log 查看提交的历史,以便确定回到哪个版本

13.git reflog 查看命令历史,以便确定回到哪个版本

14.cat <file> eg: cat package.json 查看文件内容

15.git checkout -- readme.txt  把readme.txt在工作区的修改全部撤销

16.git reset 既可以退回版本,又可以把暂存区的修改退回到工作区

case1: 当你改乱了工作区的某个文件的内容,想直接丢弃工作区的修改,使用git checkout -- .

case2: 当你不但改乱了工作区某个文件的内容,还添加到暂存区时(即 git commit ...) 想丢弃 修改,可使用以下两步操作:

step1:  git reset HEAD  <file>

step2:  回到case1,执行case1操作

注: 版本回退,前提是没有推送到远端程序(即 git push remote ...)

17. rm <file> 删除文件

18.git status  查看是否删除

     两种选择: 1.  git  rm  +  git commit

                        2. git checkout  -- <file>   误删 

远程操作     

一.创建远程仓库 (通常为github, gitlab, 码云)

1.创建SSH Key ,在用户根目录下,查看是否存在 .ssh目录

   如果有,再查看是否存在 id_rsa(私钥)和id_rsa.pub(公钥)两个文件

   如果没有,命令行:在根目录下  ssh-keygen -t rsa -C "xxxx@example.com"自己邮箱,

最好是远程仓库申请时的邮箱,如github上的邮箱,然后一路回车,使用默认配置

2.打开github, 找到Account Settings,找到侧边栏上的SSH页面

   Add  SSH key,  粘贴key中的id_rsa.pub

   点击Add key 完成操作

二.添加远程库

     本地创建了库,又想在github上建库,并将两者同步

     登录github ,   找到  create  a  new  pro  ,  然后 respositiy  name

     关联远程库: git remote add  origin git@server-name:path/repo-name.git

     关联后使用命令: git push -u origin master 第一次推送master分支的所有内容

     此后,每次提交后,只要有必要,就可以使用命令git push origin master提交最新的修改

二.从远程库克隆

    git clone git@github.com:xxx/xxxx.git

    cd  git/...  

    ls

三.创建与合并分支

1. 创建dev分支,然后切换到dev分支

   git checkout -b  dev  表示创建并切换分支

   等价于  git branch dev  + git checkout dev

2.查看当前分支: git branch

3.修改并提交: git add readme.txt

                          git commit -m "branch test"

4.切换到master: git checout master

5.合并分支: git merge dev 合并到当前分支

6.合并完之后, 删除dev分支: git branch -d  dev

   -d/-D均可删除   -D 强制删除

7.删除后,再次查看branch: git branch

四.解决冲突

1.git status  查看发生冲突的文件

2.git log --graph  查看分支合并图

五.分支管理策略

合并分支时,通常会用fast forward模式,但在此模式下, 删除分支后,会丢掉分支信息,

如果强制禁止fast forward模式, git 会在merge生成一个新的commit

这样,从分支历史上就可以看出分支信息

合并分支时,用--no --ff参数就可以用普通模式合并了,合并后的历史分支,

可以看出做过合并,而fast forward则合并就看不出曾经做过合并

六. bug分支

git stash 可以把当前工作现场“储藏”起来

git stash list查看刚保存的工作现场

工作现场回复方法

1. git stash apply 恢复后stash内容并不删除, 需要用git stash drop来删除

2.git stash pop 恢复同时把stash内容也删除了

最后用git stash list确认是否删除

feature分支: feature分支上进行开发,完成后合并, 然后删除

多人协作: 远程仓库名默认为: origin

                     查看远程库信息: git remote /  git remote -v 更详细

                     master分支是主分支,因此要时刻与远程同步

                    dev分支是开发分支,团队所有成员都需要在上面工作,也需要与远程同步

                    git push origin  master  /  dev

变基: git rebase  把分支的提交历史  “整理”成一条线

七.标签管理

创建标签:  1.切换到需要打标签的分支上

                    git branch

                    git checkout master/dev

                    git tag <name>

                    2.查看所有标签: git tag

                    3.对历史commit打标签:  git  tag   v1.0

                    4.git tag  <tagname>  查看标签信息

                    5. 查看指定标签信息: git tag  -a  <tagname>   -m  "xxx..."

操作标签:1.git push  origin <tagname>  推送一个本地标签

                     2.git push origin --tags 推送全部未推送的本地标签

                     3.git tag -d  <tagname>  删除一个本地标签

                     4.git push origin: refs/tags/<tagname>  删除一个远程标签     

常用的git开发流程图及工具

git-flow:



常用git开发工具: TortoiseGit、source tree、github on desktop