git基本命令汇总

96
xiao_dong_zi
2019.03.11 18:25* 字数 891

本地管理 git

  • git init 本地初始化,会建立一个.git 文件,这时候相当于建立了一个本地进行版本控制的仓库。

  • git add readme.txt 本地添加到缓冲区

  • git commit -m ' commit a file ' 从缓冲区然后提交

  • git status 查看当前的状态

  • git diff 查看修改的地方,这是在git add 之前的步骤

  • git log

  • git log --pretty=oneline

  • git reset --hard HEAD^ 切换到之前的版本

  • git reflog 查看过去的ID

  • 工作区 暂缓区(stage) 当前分支(版本库)

  • git status unstracked 是指新文件,并未被添加过

  • changes not staged for commit 是指还没有提交

  • git diff HEAD -- test.txt 查看当前文件夹(工作区)和版本库(分支)中的区别

  • git checkout -- test.txt 将文件夹(工作区)中的修改撤回到在暂缓区一样的版本(最后一次add时候的状态 )

  • git reset HEAD test.txt 能够将文件add 后进入暂缓区的逆转,即将文件add 到暂缓区后可以进行反操作,然后将暂缓区清空。

  • git rm a.txt 类似于add 向暂缓区进行提交删除的命令,要将版本库的文件也删除,需要再进行git commit

  • git chekout -- a.txt 本地进行删除操作后,有两种做法,第一是撤销删除,将本地的状态更新为版本库中的文件状态,文件就能找回,第二种是确实是要删除,即将版本库中的文件也进行删除。


远程仓库

  • 加入ssh key 在根目录下 .ssh/id_rsa.pub

  • ssh -T git@github.com/git@bitbucket.org 进行验证是否能够连接成功

  • git remote add origin git@bitbucket.org:michaelliao/learngit.git 将本地的版本库和远程库进行连接

  • git push -u origin master 将本地的版本库推到远程库中

  • git pull --rebase origin master 在第一次push 过程中,因为远程库会有readme 文件,所以直接push 会造成冲突,因此使用该操作会将readme 先拉到本地,然后再进行push .


分支管理

  • git checkout -b dev 创建并切换分支 ,相当于两条命令,git branch dev 创建分支 dev , git checkout dev 切换到分支dev 上面

  • git branch 列出所有分支

  • git merge dev 将分支dev 合并到当前分支

  • git branch -d dev 删除分支的dev

  • git log --graph --pretty=oneline --abbrev-commit 可以看到分支合并的情况 --abbrev 的将展示的ID用省略成前几位的形式显示

  • git merge --no-ff -m "merge with no-ff" dev 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。


多人协作

  • git checkout -b dev origin/dev 新建分支,和从远端的dev 分支一致,并在分支上进行开发

  • git branch --set-upstream branch-name origin/branch-name 建立本地分支和远端分支的联系

  • git pull 取回远程主机某个分支的更新,再与本地的指定分支合并。


本地操作,连接远程库


更新

  • git pull 先拉下远端最新的,和本地的更新进行合并
  • git push 上传本地的最新
git 学习
Gupao