git 的简单命令

git init

git add file.txt   添加

git commit -m "XXX"  提交

git status

git diff

git log     查看提交历史

git log --pretty=oneline  历史一行一行显示

git reset --hard head^(回退到上一个版本)

git reset --hard 版本号前几位  

git reflog  查看命令历史

git checkout -- readme.txt  丢弃工作区的修改

git reset HEAD file 不但改乱了⼯工作区某个⽂文件的内容,还添加到了暂存区时,想丢弃修改,分两步 1、reset  2、checkout

  

删除文件:

  rm 文件名

  git rm 文件名

  git commit -m "rm 文件名"


  rm 文件名

  git checkout -- test.txt


$ git push origin master    本地master分⽀支的最新修改推送⾄至GitHub


git remote add origin git@server-name:path/repo-name.git ;  关联一个远程库

git push -u origin master     第一次推送master分⽀支的所有内容;


从远程库克隆

git clone [email protected]:michaelliao/gitskills.git

Cloning into 'gitskills'...

remote: Counting objects: 3, done.

remote: Total 3 (delta 0), reused 0 (delta 0)

Receiving objects: 100% (3/3), done.

$ cd gitskills

$ ls

README.md


$ git checkout -b dev  创建dev分支,然后切换到dev分⽀支:

  git checkout 命令加上 -b 参数表⽰示创建并切换,相当于以下两条命令:

$ git branch dev  查看分支

$ git checkout dev  切换分支


$ git branch  查看当前分支

* dev

master

git branch 命令会列出所有分⽀支,当前分⽀支前⾯面会标⼀一个*号。


查看分支:git branch

创建分支:git branch name

切换分支:git checkout name


创建+切换分支: git checkout -b name

合并某分支到当前分支: git merge name

删除分支: git branch -d name


Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容


git log --graph --pretty=oneline --abbrev-commit    查看分支的合并情况


合并分支时,如果可能,Git会⽤用“Fast forward”模式,删除分支后,会丢掉分支信息。


如果要强制禁用“Fast forward”模式,Git就会在merge时生成一个新的commit,这

样,从分支历史上就可以看出分⽀支信息。

              

git merge --no-ff -m "merge with no-ff" dev   --no-ff参数,表示禁用“Fast forward”

                                              因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。



git stash  把当前工作现场“储藏”起来,等以后恢复现场后继续工作

git checkout -b issue-编号   增加bug的分支

git merge --no-ff -m "merged bug fix 101" issue-101   bug合并到主干

git branch -d issue-编号  删除bug分支

git stash list 查刚才的工作现场

git stash apply  恢复现场   git stash apply stash@{0}

git stash drop   删除stash内容

git stash pop 恢复现场的同时,删除stash内容  


开发一个新feature,最好新建一个分支;

如果要丢弃一个没有被合并过的分支,可以通过 git branch -D name 强行删除。


git remote 查看远程库的信息

git remote -v 查看远程库,显示更详细的信息


多人协作

查看远程库信息,使用 git remote -v ;

• 本地新建的分支如果不推送到远程,对其他人就是不可见的;

• 从本地推送分支,使用 git push origin branch-name ,如果推送失败,先用git pull抓

取远程的新提交;

• 在本地创建和远程分支对应的分支,使用 git checkout -b branch-name origin/branch-

name ,本地和远程分支的名称最好一致;

• 建立本地分支和远程分支的关联,使用 git branch --set-upstream branch-name

origin/branch-name ;

• 从远程抓取分支,使用 git pull ,如果有冲突,要先处理冲突。



标签


  git tag v1.0   创建标签

  git tag   查看标签

  git log --pretty=oneline --abbrev-commit 找到历史提交的commit id

  git tag 版本号 commit id   对某次的提交打标签

  git show 版本号 查看标签信息


  还可以创建带有说明的标签,⽤用-a指定标签名,-m指定说明⽂文字:

  $ git tag -a v0.1 -m "version 0.1 released" 3628164


还可以通过-s⽤用私钥签名⼀一个标签:

$ git tag -s v0.2 -m "signed version 0.2 released" fec145a

签名采⽤用PGP签名,因此,必须⾸首先安装gpg(GnuPG),如果没有找到gpg,或者没有

gpg密钥对,就会报错:

gpg: signing failed: secret key not available

error: gpg failed to sign the data

error: unable to sign the tag

如果报错,请参考GnuPG帮助⽂文档配置Key。



  git tag -d 版本号  删除标签

  git push origin 版本号  推送某个标签到远程

  git push origin --tags  一次性推送全部尚未推送到远程的本地标签

 

  如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:

  $ git tag -d v0.9


  然后,从远程删除。删除命令也是push,但是格式如下:

  $ git push origin :refs/tags/v0.9



git的其他设置


  $ git config --global color.ui true   让Git显示颜色,会让命令输出看起来更醒目:


配置别名


  $ git config --global alias.st status 


你可能感兴趣的:(git 的简单命令)