Git常用命令

jopen 10年前

======================================================================

本地仓库操作

======================================================================

 

初始化本地仓库

git init

 

将文件添加到本地仓库中

git add 1.txt

查看当前的状态

git status

 

对比未提交已暂存的文件的差异

git diff --cached

git diff --staged

 

对比已修改未暂存文件的差异

git diff

 

忽略文件

.gitignore文件中指定

 

提交 stage

git commit -m '提交说明'

 

提交所有的更改

git commit -a -m '提交说明'

修正上一次提交

git commit --amend -m '提交说明'

 

从本地仓库移除并删除文件

rm 1.txt

如果已经提交到暂存区使用

rm -f 1.txt

 

从本地仓库溢出,但不删除文件

rm --cached 1.txt

 

移动文件

mv file_form file_to

 

查看最近两次提交记录

git log -2

 

查看最近两周提交记录

git log --since=2.weeks

 

图形查看分支和提交

git log --graph

 

撤销添加到暂存区

git reset HEAD 1.txt

 

撤销文件的修改

git checkout -- 1.txt

 

======================================================================

远程仓库操作

======================================================================

 

克隆远程仓库

git clone git://xxxx.com/xxx.git

git clone git://yyyy.com/abc.git localname

克隆默认使用origin作为远程仓库的名字,用master作为分支的名字

 

查看本地仓库的对应的远程库

git remote 

git remote -v

 

添加远程仓库

git remote add [shortname] [url]

 

从远程抓取更新,并不合并

git fetch [shortname]

 

从远程抓取更新并合并到本地当前分支

git pull [shortname]

 

推送分支到远程仓库

git push origin master

 

显示远程仓库的变化

git remote show origin

 

修改远程仓库的名称

git remote rename oldname newname

 

移除远端仓库

git remote rm [shortname]

 

======================================================================

标签操作

======================================================================

 

列出标签

git tag

git tag -l 'v1.4.2.*'

 

新建标签

git tag -a v1.4 -m 'my version 1.4'

git tag -s v1.5 -m 'my signed 1.5 tag'

 

补加标签给某次提交

git tag -a v1.2 9fceb02

 

显示某个版本

git show v1.5

 

分享标签

git push origin [tagname]

 

分享所有新增标签

git push origin --tags

 

======================================================================

分支操作

======================================================================

 

列出分支

git branch

 

列出各分支最后一次提交

git branch -v

 

列出已经合并的分支

git branch --merged

 

列出未合并的分支

git branch --no-merged

 

创建分支

git branch branch1

 

切换到分支

git checkout branch1

 

创建并切换到分支

git checkout -b branch2

 

合并分支

git merge 要并入当前分支的其他分支

例如 git merge iss4

 

删除分支

git branch -d branch1

 

强制删除未合并的分支

git branch -D branch1

 

 

======================================================================

远程分支操作

======================================================================

推送分支到远程仓库,远程分支命名为 awesomebranch

git push orgin servserfix:awesomebranch

 

合并远程某一分支到本地当前分支

git merge orgin/serverfix

 

从远程分支分化出一个新分支,并切换过去

git checkout -b myserverfix origin/serverfix

git checkout --track origin/serverfix

 

删除远程分支

git push origin :serverfix

 

======================================================================

衍合操作

======================================================================

这部分操作就是将两个分支中的一个操作在另一个分支上重新执行。我也不会用,推荐在只本地仓库中使用。