Git初始化
git init
git init
用于初始化本地仓库(repository),初始化成功后,会在当前目录创建.git
文件夹用于存放objects
,refs/heads
,refs/tags
,index
等git相关数据。同时会创建一个初始分支,初始分值名默认为master,可以通过--initial-branch
来指定其他的分值名,或者通过修改配置来自定义默认的分支名。
# 初始化本地仓库git init # 查看当前的分支git branch --show-current
自定义初始分支名
# 查看默认初始分支名git config --get init.defaultbranch
# 修改默认初始分支名(系统配置)# git config --system init.defaultbranch "{自定义分支名}"git config --system init.defaultbranch "Test-master"
# 修改默认初始分支名(局部配置)# git config init.defaultbranch "{自定义分支名}"git config init.defaultbranch "Test-master"
Git 基本命令
git add
添加文件到暂存区(index),可以一次添加多个文件,以空格区分;文件修改后使用git add
则会将修改项添加到index中
- 添加一个文件到暂存区:
# git add {文件名}git add gitTest2.txt
- 添加多个文件到暂存区:
# git add {文件1} {文件2}git add gitTest3.txt gitTest4.txt
# 添加当前更改的所有文件到暂存区git add .
- 添加文件修改内容至index
git commit
git commit
用于提交暂存区的更改
# 提交暂存区的变更,输入命令后会开启编辑器对提交信息进行编辑git commit
编辑器中需要输入对应的commit message,保存后完成提交,若没有输入提交信息,退出编辑器不会提交暂存区的变更:
-m
git commit -m
用于提交时直接指定提交信息,不需要再进入编辑界面编辑提交信息
# 提交并直接指定提交信息git commit -m'自定义的提交信息'
-am
git commit -am
相当于执行了git add .
和git commit -m
,可以将当前路径下的所有文件添加至index,并且进行提交。
# 添加当前的变更并且提交git commit -am'自定义的提交信息'
-amend
git commit -amend
会创建一个新的提交来替换当前最近的一次提交,可用来修改最近的一次提交记录,或者是将最新的修改项合并到最近的一次提交记录中。新的提交不会改变提交时间,但是会改变commitId。
# Replace the tip of the current branch by creating a new commit.# 通过创建一个新的提交去替换当前最近的一次提交,可用于修改当前最近的一次提交,以及将当前最新的修改合并到最近的一次提交上git commit -amend
git remote
add
git remote add
可以添加给当前的repository指定一个远程仓库的url,并且通过指定一个名字来代表这个远程仓库的url
# git remote add {自定义远程仓库名} {远程仓库地址}git remote add origin git@github.com:xxxxxx/GitDemo.git
-v
git remote -v
可以查看当前fetch
和push
可使用的远程仓库地址信息
# 查看远程仓库地址信息git remote -v
rename
git remote rename
可以修改远程仓库地址的命名
# 修改远程仓库地址的命名# git remote rename {原远程仓库命名} {新远程仓库命名}git remote rename origin new-origin
remove
git remote remove
可以删除已有的远程仓库信息
# 删除远程仓库地址# git remote remove {远程仓库名}git remote remove origin
git push
git push
可以将提交到本地仓库的内容推送到远程仓库
# 将指定分支的内容推送到远程仓库中# git push {远程仓库名} {本地分支名}:{远程分支名}git push origin master:master
# 当远程分支名不填时,默认与本地分支名相同git push origin master # 等效于git push origin master:master
git fetch
git fetch
用于将远程仓库的分支和对象的更新同步到本地仓库
同步远程仓库的变更
# 同步远程仓库的分支变化# git fetch {远程仓库名}git fetch origin
同步远程仓库分支的变更
# 同步分支变化到本地中,但不会影响本地分支的修改,可以通过git merge合入到分支中# git fetch {远程仓库名} {分支名}git fetch origin master
--all
git fetch --all
可以将所有已添加的远程仓库及其下的所有分支的变更同步到本地仓库中
# 同步远程仓库中所有分支的变更到本地仓库git fetch --all
git merge
git merge
用于将其他分支(本地或已fetch
的远程分支)的内容合并到当前分支中
合并远程分支至当前分支:
# 将远程分支内容合并到当前分支中,要合并的远程分支必须是已经fetch至本地仓库的分支# git merge {远程仓库名}/{远程分支}git merge origin/master
合并本地其他分支至当前分支:
# 将本地其他分支合并至当前分支# git merge {本地分支}git merge dev-master
git pull
git pull
可以直接拉取远程仓库的分支变更并合并到本地分支中,相当于执行了git fetch
和git merge
# 从远程仓库拉取指定分支最新的变更并进行合并git pull origin master
git branch
git branch
用于对分支进行增删改查的操作
查看分支
# 查看本地分支git branch
# 查看远程分支,仅可以查看已fetch的远程分支git branch -r
# 查看本地和远程的分支git branch -a
创建分支
# 创建分支# git branch {分支名}git branch new-branch
删除分支
# 删除分支# git branch -D {分支名}git branch -D new-branch
分支重命名
# 修改分支名# git branch -m {原分支名} {新分支名}git branch -m dev-master new-master