git常用命令
git初始化本地仓库,克隆远程仓库
通常有两种获取 Git 项目仓库的方式:
1.将尚未进行版本控制的本地目录转换为 Git 仓库;
2.从其它服务器 克隆 一个已存在的 Git 仓库。
两种方式都会在你的本地机器上得到一个工作就绪的 Git 仓库。
在已存在目录中初始化仓库
首先cd到项目文件夹,然后
git init
该命令将创建一个名为 .git 的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这些文件是 Git 仓库的骨干。 但是,在这个时候,我们仅仅是做了一个初始化的操作,你的项目里的文件还没有被跟踪。
如果在一个已存在文件的文件夹(而非空文件夹)中进行版本控制,你应该开始追踪这些文件并进行初始提交。 可以通过 git add 命令来指定所需的文件来进行追踪,然后执行 git commit :
git add *.c
git add LICENSE
git commit -m 'initial project version'
稍后我们再逐一解释这些指令的行为。 现在,你已经得到了一个存在被追踪文件与初始提交的 Git 仓库。
克隆现有的仓库
如果你想获得一份已经存在了的 Git 库的拷贝,比如说,你想为某个开源项目贡献自己的一份力,这时就要用到 git clone 命令。
例如
git clone https://github.com/Etherwave/git_study
如果你想在克隆远程仓库的时候,自定义本地仓库的名字,你可以通过额外的参数指定新的目录名:
git clone https://github.com/Etherwave/git_study my_git_study
这会执行与上一条命令相同的操作,但目标目录名变为了 mylibgit。
分支
创建分支:
git branch mybranch
切换分支:
git checkout mybranch
创建并切换分支:
git checkout -b mybranch
git创建分支 第一种方法 创建分支并转到该分支
git checkout -b iss53
第二种方法 先创建分支,然后转到该分支
git branch iss53
git checkout iss53
在git commit完成该分支后
在远程增加该分支
git push --set-upstream origin iss53
更新master主线上的东西到该分支上:
git rebase master
切换到master分支:
git checkout master
更新mybranch分支上的东西到master上:
git rebase mybranch
提交:
git commit -a
对最近一次commit的进行修改:
git commit -a –amend
commit之后,如果想撤销最近一次提交(即退回到上一次版本)并本地保留代码:
git reset HEAD^
合并分支:(merge from)
git checkout master
git merge mybranch (merge from mybranch)
删除分支:
git branch -d mybranch
强制删除分支:
git branch -D mybranch
列出所有分支:
git branch
查看各个分支最后一次提交:
git branch -v
查看哪些分支合并入当前分支:
git branch –merged
查看哪些分支未合并入当前分支:
git branch –no-merged
更新远程库到本地:
git fetch origin
推送分支:
git push origin mybranch
取远程分支合并到本地:
git merge origin/mybranch
取远程分支并分化一个新分支:
git checkout -b mybranch origin/mybranch
删除远程分支:
git push origin :mybranch
rebase:
git checkout mybranch
git rebase master (rebase from master)
举例:
git checkout server
git rebase –onto master server client
git checkout master
git merge client (fostforward)
git rebase master server (checkout sever)
git merge server
git branch -d client
git branch -d server