分布式每个人电脑都是一个完整的版本库,也有类似中央服务器的电脑,但是这个服务器只是用来交互打架的修改没有它大家也一样干活,只是交互修改不方便而已
仓库:里面文件修改,删除,添加都能被git追踪,认识时刻都能追踪历史或者将来某哥时刻还原只能追踪文本文件的改动
- mkdir 创建目录
- cd 进入到目录里面
- pwd 用于显示当前的目录
- cat 查看文件内容
初始化一个目录成git的仓库(版本库)包括暂存区和master分支 git init查看当前目录的文件包括隐藏文件 ls -ah获取git命令的手册页 git help使用git前需要进行一些全局的配置
git config --global user.name "wirelessqa" git config --global user.email wirelessqa.me@gmail.com git config --global color.ui true //让Git显示颜色,会让命令输出看起来更醒目 .gitignore 配置 不纳入git管理 主要是系统文件,编译文件,自定义的文件 ,这个文件也用推送到远程库https://github.com/github/gitignore 创建文件touch 命令
git config --global core.editor emacs
git config --global merge.tool vimdiff
git config --list
能提示你接下来怎么做的命令,比如修改工作区文件内容,提示你添加到暂存区或者丢弃工作区修改的命令
git status
git diff
纳入git仓库管理,把修改添加到暂存区(使用.代表将所有的修改进行添加) git add .
git commit -m ""
git commit -a -m ""
git diff HEAD -- readme.txt
git log --pretty=oneline
git checkout -- readme.txt
1、修改后还没添加到暂存区 ,撤销修改回到最近一次commit的状态,也就是和版本库里面的状态一样 2、修改后被添加到暂存区了,又做了修改 ,撤销修改就回到添加到暂存区后的状态,也就是跟暂存区里面的状态保持一致 3、用版本库里的版本替换工作去的版本,无论工作区是修改还是删除可以把暂存区的修改撤销掉
git reset HEAD file
git rm test.txt
git的版本回退只是改了head 指针,顺便把工作区的文件更新掉了
git reset --hard HEAD^ 或 git reset --hard 3628164
可以看到reset和commit等命令历史,可以利用这个命令查看最近一次
commitidgit reflog
git remote -v
git remote set-url origin https://github.com/Alicyu1024/OTHERREPOSITORY.git
git remote add origin git@github.com:alicyu1024/first-test.git
git push origin master
git push -u origin master
Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是 origingit clone git@github.com:alicyu1024/first-test.git git pull 如果提示冲突解决冲突 抓去信息碰到没有链接的 有两种方式解决
1、git branch --set-upstream branch-name origin/branch-name 建立本地分支和远程分支的关联 2、git pull origin branchname
git checkout -b dev
本地分支创建和远程分支相同的分支,主要是仓库从远程clone过来的(一般要先git fetch,再git checkout -b branch-name origin/branch-name)
git checkout -b branch-name origin/branch-name
git branch dev
git checkout dev
git stash list
git stash
git stash apply
git stash drop
Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法, git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除, 另一种方式是用git stash pop,恢复的同时把stash内容也删了
git branch
git branch -r
git merge dev
git branch -d dev
git branch -D dev
(删除远程分支)冒号前面的空格不能少,原理是把一个空分支push到server上,相当于删除该分支。
git push origin :branch-name
git push origin test:master
git push origin test:test
刚提交到远程的test将被删除,但是本地还会保存的,不用担心
git push origin :test
git log --graph
git log --pretty=oneline --abbrev-commit
git merge branchname
git merge --no-ff -m "merged bug fix 101" issue-101
描述开发历程,在发布一个版本的时候打一个标签
git tag
git tag v1.0 [commit id]
git show [tagname]
git tag -a v0.1 -m "version 0.1 released" 3628164
git tag -d v0.1
git push origin v1.0
git push origin --tags
git push origin :refs/tags/v0.9
- 首先,可以试图用git push origin
推送自己的修改;如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;如果合并有冲突,则解决冲突,并在本地提交;没有冲突或者解决掉冲突后,再用git push origin 推送就能成功! - 如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to
origin/ 。 - rebase操作可以把本地未push的分叉提交历史整理成直线;rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。
- git rebase
本文由 Alicyu 创作,如果您觉得本文不错,请随意赞赏
采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
原文链接:https://www.alicyu.com/archives/git
最后更新:2019-10-18 15:23:08
Update your browser to view this website correctly. Update my browser now