( 三 )、Git 常用命令
( 三 )、Git 常用命令
1、简介
Git 的工作就是创建和保存你项目的快照及与之后的快照进行对比。Git的使用流程:
说明:
- workspace:工作区
- staging area:暂存区/缓存区
- local repository:版本库或本地仓库
- remote repository:远程仓库
2、命令使用
1、创建版本库
Git 使用 git init 命令来初始化一个 Git 仓库 或者 我们使用 git clone 从现有 Git 仓库中拷贝项目。
git init
或者
git clone git://github.com/dw/test.git
2、忽略某些文件
一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式。
.git
**/.idea/**
**/*.iml
**/target/**
**/*.log
zzzgitPull.bat
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/
*.log
3、 把文件添加到版本库中
# 提交所有变化(-all 缩写)
git add -A
# 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
git add -u
# 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
git add .
# 添加以 .txt 结尾的所有文件
git add *.txt
# 添加directory 文件夹下 .sh 结尾的文件
git add directory/*.sh
4、提交暂存区到本地仓库
git commit -m “提交描述 message”
5、查看仓库当前的状态,显示有变更的文件
git status
6、比较文件的不同,即暂存区和工作区的差异。
git diff readme.txt
7、版本回退
# 回退所有内容到上一个版本,HEAD: 当前版本, HEAD^ 上一个版本, HEAD^^ 上上个版本, 依次类推;可以使用 ~数字表示 HEAD~0 表示当前版本, HEAD~1 上一个版本,
HEAD^2 上上一个版本, 依次类推。
git reset HEAD^
# 回退 hello.java 文件的版本到上一个版本。
git reset HEAD^ hello.java
# 回退到指定版本 052e 回退的版本号,可以通过 git log 查看版本号。要重返未来,用 git reflog 查看命令历史,以便确定要回到未来的哪个版本。
git reset 052e
# -hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交。
git reset --hard HEAD
8、删除文件
1、将文件从暂存区和工作区中删除:
git rm <file>
2、如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f
git rm -f runoob.txt
3、如果想把文件从暂存区域移除,但仍然希望保留在当前工作目录中,换句话说,仅是从跟踪清单中删除,使用 --cached 选项即可:
git rm --cached <file>
9、远程仓库操作
1、列出远程库的简短名字
git remote
2、列出远程仓库名字 + 地址
git remote -v
3、添加远程版本库,shortname为取的远程仓库名字默认为origin, url: 远程仓库地址
git remote add [shortname] [url]
4、删除远程仓库
git remote rm name
5、修改仓库名
git remote rename old_name new_name
6、从远程获取代码库, 不会合并远程仓库代码到本地分支, 需要手动合并,
需要执行 git merge 远程分支到你所在的分支
git fetch
7、从远程获取代码并合并本地的版本,git pull 其实就是 git fetch 和 git merge FETCH_HEAD 的简写。
git pull <远程主机名> <远程分支名>:<本地分支名>
示例:
git pull
git pull origin
将远程主机 origin 的 master 分支拉取过来,与本地的 localDev分支合并:
git pull origin master:localDev
如果远程分支是与当前分支合并,则冒号后面的部分可以省略:
git pull origin master
8、将本地的分支版本上传到远程并合并
git push <远程主机名> <本地分支名>:<远程分支名>
如果本地分支名与远程分支名相同,则可以省略冒号:后的类容:
git push <远程主机名> <本地分支名>
如果本地版本与远程版本有差异,但又要强制推送可以使用 --force 参数:
git push --force origin master
删除主机的分支可以使用 --delete 参数,以下命令表示删除 origin 主机的 master 分支:
git push origin --delete master
10、Git 分支管理
1、创建分支命令
git branch branchName
2、切换分支命令
git checkout branchName
3、合并分支命令
git merge
4、创建新分支并立即切换到该分支下
git checkout -b newBranch
5、删除分支命令
git branch -d branchname
11、查看提交历史
1、查看说有提交日志
git log
你也可以用 --reverse 参数来逆向显示所有日志
git log --reverse
2、如果要查看指定文件的修改记录可以使用 git blame 命令
git blame <file>
12、打标签
1、 添加标签 v1.0
git tag -a v1.0 -m 'my version 1.0'
2、列出现有标签
git tag
3、给已经提交的打标签, 先通过 get log 查看提交的版本号, 通过版本号打标记
git tag -a v0.9 85fc7e7..版本号