GIT
git的使用
- 使用git提交的两步
- 第一步:是使用 git add 把文件添加进去,实际上就是把文件添加到暂存区。
- 第二步:使用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支上。
.git 跟踪管理版本的目录
创建版本库
- 创建版本库
- mkdir test
- 进入目录
- cd test
- 显示当前目录
- pwd
- 通过命令把这个目录变成git可以管理的仓库
- git init
- 新建一个记事本文件使用命令将其添加到暂存区里面去
- git add read.txt
- 提交到仓库
- git commit -m '提交read.txt'
- 提交read.txt 提交注释
- 通过命令git status来查看是否还有文件未提交
- git status
- 查看文件改了什么内容
- git diff read.txt
- 查看历史记录
- git log
- git log ---pretty=oneline 信息显示太多的话
版本回退
- 回退版本
- 回退上一个版本
- git reset --hard HEAD^
- 回退上上一个版本
- git reset --hard HEAD^^
- 回退前一百个版本
- git reset --hard HEAD~100
- 回退上一个版本
- 查看记事本内容
- cat read.txt
- 回退到最新版本
- 查看之前的版本号
- git reflog
- 6fcfc89 版本号
- git reset --hard 6fcfc89
- 查看之前的版本号
Git撤销修改和删除文件操作
- 撤销修改--未添加到暂存区
- git checkout -- read.txt
- 撤销修改--添加到暂存区
- git checkout -- read.txt
- 删除文件
- rm read.txt
- 恢复删除的文件
- git checkout -- read.txt
远程仓库
- 第一步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果有的话,直接跳过此如下命令,如果没有的话,打开命令行,输入如下命令
ssh-keygen -t rsa --C "youremail@example.com"- id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人
- 第二步:登录github,打开" settings"中的SSH Keys页面,然后点击"Add SSH Key",填上任意title,在Key文本框里黏贴id_rsa.pub文件的内容,点击 Add Key,你就应该可以看到已经添加的key
添加远程库
我们已经在本地创建了一个Git仓库后,又想在github创建一个Git仓库,并且希望这两个仓库进行远程同步,这样github的仓库可以作为备份,又可以其他人通过该仓库来协作。
- 登录github上,然后在右上角找到"create a new repo"创建一个新的仓库。
- 在Repository name填入testgit,其他保持默认设置,点击"Create repository"按钮,就成功地创建了一个新的Git仓库
- git remote add origin https://github.com/tugenhua0707/test.git
- git push -u origin master 本地仓库分支master内容推送到远程库中
- 由于远程库是空的,我们第一次推送master分支时,加上了 --u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
- git push origin master 把本地master分支的最新修改推送到github上
远程库克隆
- git clone origin https://github.com/tugenhua0707/test2.git
创建与合并分支
- 创建dev分支,然后切换到dev分支上
- git checkout -b dev
- git checkout 命令加上 --b参数表示创建并切换,相当于如下2条命令
- git branch dev
- git checkout dev
- git branch 查看分支,会列出所有的分支,当前分支前面会添加一个星号。
- git merge 合并
- git merge dev dev分支上的内容合并到分支master上(在master上输入命令)
- git merge --no-ff -m "注释" dev
- 分支管理策略
- 通常合并分支时,git一般使用"Fast forward"模式,在这种模式下,删除分支后,会丢掉分支信息,现在我们来使用带参数 --no-ff来禁用"Fast forward"模式
- 删除分支
- git branch -d dev
- 总结创建与合并分支命令
- 查看分支:git branch
- 创建分支:git branch name
- 切换分支:git checkout name
- 创建+切换分支:git checkout --b name
- 合并某分支到当前分支:git merge name
- 删除分支:git branch --d name
解决冲突
- bug分支
- git stash 将当前的工作现场隐藏起来
- git stash list 查看工作现场
- git stash apply 恢复 恢复后,stash内容并不删除
- git stash drop stash内容删除
- git stash pop 恢复的同时把stash内容也删除了
多人协作
- 要查看远程库的信息 使用 git remote
- 要查看远程库的详细信息 使用 git remote --v
- git push origin master 推送分支
- git pull
- 可以试图用git push origin branch-name推送自己的修改.
- 如果推送失败,则因为远程分支比你的本地更新早,需要先用git pull试图合并。
- 如果合并有冲突,则需要解决冲突,并在本地提交。再用git push origin branch-name推送