Git命令行记录
Part A(本地操作)
1.设置git仓库信息:$git config --global user.name "you name"
$git config --global user.email "you email"
说明:--global
表示你这台机器上所有的Git仓库都会使用这个配置。
查看个人信息:
$git config --list
$git init
- 克隆远程仓库到本地
$git clone git@github.com:michaelliao/bootstrap.git
其中michaelliao/bootstrp.git是一个仓库名称,需要根据自己的仓库配置.本地仓库初始化以后,还需要和远程仓库进行关联,这个放到后面
3.常用的本地操作
$git add "文件名(包含文件格式)"
--添加到暂存区
$git commit m"提交说明"
–从暂存区添加到git仓库中
$git commit -a -m"skip stage to commit"
–跳过暂存区直接提交到git,"-a"
参数可以自动暂存文件,然后执行提交。
$git log
– 查看提交日志
$git status
– 查看文件状态
$git diff
--查看未提及文件变更细节
$git diff --staged
--查看已提交文件变更细节
4.版本回退
$git reset --hard HEAD^
--在当前的git版本上回退到上一个版本。每一次commit为一个版本。
$git reset --hard commit_id
--回退到指定的commit_id的版本。$git log
和$git reflog
可以查看提交记录,每一条记录报存着相应的commit_id.
5.撤销修改
- 撤销未添加到暂存区的修改
$git checkout --file
– 丢弃工作区中的内容,file修改的内容会清除,并且无法恢复。 - 撤销已添加到暂存区的修改
$git reset HEAD file
– 将file存在暂存区的修改撤回到工作区。
6.删除和恢复
- 删除文件后同步git
rm file
删除文件后,git rm file
删除git仓库中的file,git commit file -m"提交说明"
同步跟新到git仓库中。 - 删除文件后的恢复文件操作
$git checkout --file
既可以对未添加到暂存区的修改操作进行恢复,也可以对已删除的文件进行恢复。前提是git tree上的文件记录没有被删除。
Part B(远程分支)
远程分支的常见操作
$git remote add origin git@github.com:OnlyYouMyLove/TestGit.git
–关联远程仓库,绑定当前仓库与远程仓库,结构为git remote add + 自定义仓库命名 + 仓库ssh地址,上例中使用的是github仓库,也可以使用码云的仓库。
$git push -u origin master
----第一次推送本地仓库内容到远程仓库,实质是将master分支上的内容推送到origin,由于origin是空的,因此,-u参数表示先在origin创建master分支,然后将本地的master分支上的数据关联上去。
$git push origin master
—非第一次推送到远程。
$git fetch origin
—从远程仓库拉取数据到本地.
说明:
A: git clone 自动命名远程仓库服务器名字为origin,并拉取全部数据,然后在本地创建指向服务器上master分支的指针,并命名为origin/master,它就叫远程分支,接着git会创建本地master分支,本地的master修改添加到origin/master分支上,然后由origin/master与远程仓库进行交互。
B: fetch 这条命令会从服务器取得所有本地尚未包含的数据,然后更新远程分支。注意:只是更新远程分支,本地master分支并未改变,需要合并才行,git merge origin/master,本地master与本地的远程origin/master合并。可以理解为fetch将数据更新到了负责与远程进行交互的本地仓库中的远程的origin/master分支上,但是本地的分支master并没有与origin/master同步。
C: origin 与 master分支名称一样,只是默认名称,没有什么特殊含义,都可以自定义。
$git pull origin master
—从远程仓库拉取数据并直接合并到本地。相当于fetch和merge合并为一步。
$git push origin name:name
— 创建远程的name分支,远程的name分支与本地的name建立映射关系。
$git push origin --delete name
—删除远程的name分支。
$git checkout -b 本地分支名x origin/远程分支名x
—使用该方式会在本地新建分支x,并自动切换到该本地分支x。采用此种方法建立的本地分支会和远程分支建立映射关系。
$git fetch origin 远程分支名x:本地分支名x
—使用该方式会在本地新建分支x,但是不会自动切换到该本地分支x,需要手动checkout。采用此种方法建立的本地分支不会和远程分支建立映射关系。
$git branch -u origin/分支名
—建立当前分支与远程分支的映射联系。
$git branch --set-upstream-to origin/分支名
— 建立当前分支与远程分支的映射联系。
git pull --allow-unrelated-histories
— 将远程数据与本地的数据强行合并,
window下将打开vim编辑界面。输入小写字母i,进入编辑模式,编辑完成后,按Esc退出编辑模式,输入英文:,然后输入wq,可关闭vim,回到git。
Part C (分支操作)
1.创建本地分支和切换
$git branch name
— 创建分支
$git checkout name
— 切换分支
$git checkout -b name
— 创建分支,并且切换到分支上。
$git branch -d name
—删除分支
说明:name是你要创建的分支的名字。
2.查看和合并分支
$git branch
— 查看本地所有分支
git branch -r
—查看远程所有分支
$git merge branchName
— 将branchName分支合并到当前分支。