git使用总结

2016-06-21  本文已影响89人  curious_cat

git和其他所有的版本控制系统一样,都只能追踪文本的改变

配置用户名和email

git config --global user.name "curious_cat"
git config --global user.email "xx@qq.com"

global参数设置了电脑上的所有的git仓库的默认的name和email
git config --global user.name和git config --global user.email能查看当前的所有git仓库默认的用户名和email

初始化git仓库

git init     当前目录成为了git可以管理的仓库(版本库),并且当前目录自动生成了.git目录,.git目录是Git来跟踪管理版本库的。

.git目录中会自动创建一个叫master的分支
*HEAD指针总是指向当前分支 *

将文件添加到git仓库

git add test.txt  把工作目录中文件添加到.git目录的暂存区,可同时添加多个文件

test.txt等文件必须放在工作目录,才可以添加到git仓库

将文件提交到git仓库

git commit -m "修改了test.txt文件"  把文件提交到.git目录的中的当前分支(HEAD指针指向的分支)

每次修改文件后必须先执行git add 再执行git commit -m,因为git管理的是修改,而非文件

查看git仓库状态

git status              查看git仓库的状态

On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: test.txt
no changes added to commit (use "git add" and/or "git commit -a")
提示修改了文件test.txt,需要使用git add test.txt 添加到暂存区,或者使用git checkout -- test.txt撤销修改。

On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: test.txt
提示:test.txt 的修改需要使用git commit -m "修改了XX" 提交到当前分支上

查看文件是如何修改的

git diff test.txt      

*如果git status提示有文件被修改过(未git add),用git diff就能查看修改的内容了 *

删除文件

rm test.txt  直接用rm命令删除

On branch master
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
deleted: test.txt
no changes added to commit (use "git add" and/or "git commit -a")
提示使用git checkout -- text.txt将撤销对文件的删除,使用git rm text.txt 然后使用git commit确实要从版本库中删除该文件

 git rm text.txt  配合git commit -m "xx"   从版本库删除该文件

查看git仓库日志和版本回退

git log --pretty=oneline    查看提交日志,以便确定要回退到哪个版本    
git reflog   查看命令日志,以便确定要回到未来的哪个版本
git reset --hard HEAD^    回退到上一个版本,HEAD表示当前版本,HEAD^表示上一个版本
git reset --hard HEAD^^  回退到上上一个版本,HEAD^^表示上上一个版本
git reset --hard 3628164   回退到指定的版本,需配合git reflog使用

撤销修改

git checkout -- readme.txt    修改文件后,使用git status会提示使用此命令将撤销对工作目录中readme.txt的修改
git reset HEAD readme.txt    修改文件后并使用了git add,使用git status会提醒使用此命令会把暂存区的修改撤销,但工作区中仍然是修改后的内容,相当于回到了未git add状态。

如果修改文件后使用了git add 和git commit 只能使用版本回退功能了

创建与合并分支

1. git checkout -b dev  -b参数表示创建dev分支并切换到分支,可以进行分支开发了,上面命令相当于:   git branch dev 创建分支dev ; git checkout dev 切换到分支dev; 
2. git checkout master  dev分支开发完成后切换到master分支
3. git merge dev  然后合并dev分支到当前分支上
4. git branch -d dev 合并完成后就可以删除dev分支了
git branch 命令会列出所有分支,当前分支前面会用(*)号标识

git鼓励在分支上完成任务,合并后再删除分支,这和直接在master分支上工作效果一样,但过程更安全

解决分支合并冲突

1. 打开冲突的文件修改后使用git add 和git commit -m命令提交到当前分支
2. git merge dev 然后合并dev分支到当前分支上
3. git branch -d dev 合并完成后就可以删除dev分支了
git log --graph 可以查看合并图

Bug分支

上一篇 下一篇

猜你喜欢

热点阅读