在本地管理 git
-
git init 本地初始化,会建立一个.git 文件,这时候相当于建立了一个本地进行版本控制的仓库。
-
git add readme.txt 本地添加到缓冲区
-
git add . 提交被修改的和新建的文件,但不包括被删除的文件
-
git add -u --update update tracked files 更新所有改变的文件,即提交所有变化的文件
-
git add -A --all add changes from all tracked and untracked files 提交已被修改和已被删除文件,但是不包括新的文件
-
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 pull ; git rm file ;git commit -m ' '; git 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 init
- git remote add origin git@bitbucket.org:michaelliao/learngit.git
- git push
更新
- git pull 先拉下远端最新的,和本地的更新进行合并
- git push 上传本地的最新
网友评论