git 命令
git 基础命令
使用命令实现git对github的管理
命令 | 作用 |
---|---|
git init | 对当前目录进行git管理,该目录会成为工作区,并在当前目录下会出现个.git隐藏目录 用法: 1. git init : 当前目录会成为仓库 2. git init directoryName : 指定的目录会成为仓库 |
git clone | 克隆复制远程仓库到当前目录,克隆生成的文件里面会自动创建.git目录,并保存远程仓库信息 1.git clone |
git config | 显示repo的git 配置信息 1.git config --global -–list 列出本机全局配置文件中的信息 |
git status | 查看自上次提交之后是否有对文件再次进行修改, 即当前仓库中有没有尚未保存的文件,保存的文件有没有提交到本地仓库,提交到本地仓库的文件有没有推送到远程服务器 |
git add | 添加文件到暂存区 1.git add [fileName1] [fileName2]… 添加一个或多个文件到暂存区 2.git add [directoryName] 添加目录到暂存区 3.git add . 将当前目录下的所有内容添加到暂存区 |
git diff | 比较文件的不同 1.git diff [fileName] 显示暂存区和工作区的差异,显示尚未缓存的改动(还没有进行git add) 2.git diff --cached [file] 或者 git diff --staged [file] 显示暂存区和上一次提交(commit)的差异,显示已经缓存的改动,(文件已经git add过了) 3.git diff HEAD/head 显示已缓存和尚未缓存的所有改动 4. git diff [first-branch]...[second-branch] 显示两次提交之间的差异: |
git commit | 将暂存区内容添加到本地仓库中 1.git commit -m [message] 提交暂存区到本地仓库,message可以是一些备注信息 2.git commit [file1] [file2] ... -m [message] 提交暂存区的指定文件到仓库区 3.git commit –a 设置修改文件后不需要执行git add命令,直接提交(跳过暂存区,直接从工作区到仓库区) git commit –am [message] |
git reset | 用于回退版本,可以指定退回某一次提交的版本。 1. git reset [--soft | --mixed | --hard] [HEAD] --mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。 --soft 参数用于回退到某个版本 --hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交: git reset HEAD^ # 回退所有内容到上一个版本 git reset HEAD^ hello.php # 回退 hello.php 文件的版本到上一个版本 git reset 052e # 回退到指定版本 git reset --soft HEAD~3 # 回退上上上一个版本 git reset –soft 不会改变stage区,仅仅将commit回退到了指定的提交 git reset –mixed 不会改变工作区,但是会用指定的commit覆盖stage 区,之前所有暂存的内容都变为未暂存的状态 git reset –hard 使用指定的commit的内容覆盖stage区和工作区 |
git rm | git rm git rm --cached git rm –r |
git mv | git mv [fileName1] [directory/fileName2] 当第二个参数为file的路径时,该命令会将file1 移动到指定位置并改名为fileName2 git mv –f 当指定路径中已经存在名为fileName2的文件时,-f 参数可以强制进行操作 |
git log | 查看提交历史 1. git log 查看历史提交记录 2. git blame 3. git log --oneline 查看历史记录简洁的版本 4. git log --graph 以拓扑图的形式显示提交的历史记录,可以看出分支、合并的动作 5. git log –reverse 逆向显示log记录 (按照时间顺序,时间早的提交在上面显示) 6.git log --author 查找指定用户提交的日志 git log --author=Name 7. git log --since={}/ --before ={3.weeks.ago}/ --until ={}/ --after={2021-10-01} 查看指定时间范围内的log 8. git log --decorate 可以看到git上的tag记录 |
git remote | 操作远程仓库 1. git remote -v 显示所有的远程仓库 (该命令只能在仓库目录下才能使用) 2. git remote show remoteRepoUrl 显示远程仓库的信息 3. git remote add [shortName] [remoteRepoUrl] 添加远程仓库 4. git remote rm name 删除远程仓库 5. git remote rename old_name new_name 重命名仓库 git remote –v 返回中显示的名称(origin) = git remote add [shortName] [remoteRepoUrl] 中的short name = git remote rm name 的name = git remote rename old_name new_name 中的new name = git push –u name master 中的name,这其实是远程仓库的一个名字,可以通过该名字指向它所表示的远程库,在所有需要指明远程库的地方,都可以用该名字代替,可以利用这个特性向多个远程仓库推送更新 eg: git remote -v gitee git@gitee.com:imnoob/runoob-test.git (fetch) gitee git@gitee.com:imnoob/runoob-test.git (push) github git@github.com:tianqixin/runoob.git (fetch) github git@github.com:tianqixin/runoob.git (push) git push github master git push gitee master |
git fetch | 从远程获取代码库 1. git fetch [name] 获取name分支上最新的代码 name 与git remote 中的name相同 2. git merge [name]/[branch] 将更新合并到当前分支eg: origin/master |
git pull | 从远程获取代码并合并到本地的版本, 等于 git fetch 和git merge 1.git pull name branch eg: git pull origin master git pull origin master:branchName 拉取远程master分支并合并到branchName的分支上 |
git push | 将本地仓库推送到远程仓库并合并 1. git push <远程主机名> <本地分支名>:<远程分支名> 远程主机名与前面所说的name 是一样的,一般来说本地分支名与远程分支名是相同的,所以可以省略冒号及其后内容 eg: git push origin master 2. git push --force 强制推送 3. git push origin –delete master 删除主机的master分支 |
git branch | 1. git branch 列出本地的分支 2. git branch branchName 创建名为branchName的分支 3. git checkout branchName 切换到指定分支branchName 4. git checkout –b branchName 创建新分支branchName并立即切换到该分支下 5. git branch –d branchName 删除分支branchName |
git tag | 1. git tag 查看所有打过的标签 2. git tag -a tagName 创建一个标签 -a 表示创建一个带注解的标签, 可以记录标签的时间,创建人,添加标签的注解 可以省略-a选项,但创建的是没有上数注解的标签 3. git show tagName 查看指定tag对应的版本所修改的内容 4. git tag -a tagName -m “tagInfo” 创建tagName并指定标签信息为tagInfo 5. git tag -s tagName -m “tagInfo” 创建PGP签名标签 |