git 常用命令

 

一 全局配置

  •  git config --gobal core.autocrlf false
  •  git config --global user.name "carlos"
  • git config --global user.email "1447675994@qq.com"
  • git init // 初始化一个仓库

二 常用操作

  •  git add // 添加到缓冲区 可以加 参加 -A
  •  git status // 查看当前状态
  •  git commit -m "XXX" // 提交代码
  •  git diff // 查看不同
  •  git log // 查看日志
  •  git log --pretty=oneline
  •  git reset --hard HEAD^
  •  git rm 文件名(包括路径) 从git中删除指定文件 // 删除文件
  •  git reflog 记录你的每一次命令
  •  git checkout -- file可以丢弃工作区的修改
  •  git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令
  •  git reset HEAD file可以把暂存区的修改撤销掉
  •  git remote add origin git@server-name:path/repo-name.git要关联一个远程库;
  •  git push -u origin master 使用命令第一次推送master分支的所有内容
  •  git clone克隆一个本地库:
  •  git clone git@github.com:michaelliao/gitskills.git
  •  git checkout -b dev # 创建dev分支,然后切换到dev分支
  •  git branch命令会列出所有分支,当前分支前面会标一个*号
  •  git merge dev 把dev分支的工作成果合并到master分支上
  •  git branch -d dev 删除dev分支了
  •  git merge --no-ff -m "merge with no-ff" dev 合并分支代码 --no-ff参数,表示禁用Fast forward 这样,从分支历史上就可以看出分支信息。
  •  git stash Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作
  •  git stash apply 恢复,但是恢复后,stash内容并不删除
  •  git stash drop 来删除
  •  git stash pop,恢复的同时把stash内容也删了
  •  git branch -D feature-vulcan 强行删除
  •  Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法
  •  一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
  •   另一种方式是用git stash pop,恢复的同时把stash内容也删了

 

三 标签

  •  git tag <name>就可以打一个新标签
  •  git tag查看所有标签
  •  git tag v0.9 6224937 #v0.9标签名 6224937 commit id
  •  git show <tagname> 查看标签信息 
  •  git tag -d <tagname> 删除标签
  •  git push origin <tagname>可以推送一个本地标签;
  •  git push origin --tags可以推送全部未推送过的本地标签;
  •  git tag -d <tagname>可以删除一个本地标签;
  •  git push origin :refs/tags/<tagname>可以删除一个远程标签。

四 分支

  •  Git鼓励大量使用分支:
  •  查看分支:git branch
  •  创建分支:git branch <name>
  •  切换分支:git checkout <name>
  •  创建+切换分支:git checkout -b <name>
  •  合并某分支到当前分支:git merge <name>
  •  删除分支:git branch -d <name>
  •  查看分支
  1.  git branch
  2.  git branch -v
  •  创建分支 git branch A1.0
  •  切换分支 git checkout A1.0
  •   删除分支
  1.  git branch -d A1.0 // 如果该分支没有合并到主分支会报错
  2.  git branch -D A1.0 //强制删除
  •  把A合并到B中
  1.  git checkout B
  2. git merge A
  •   分支合并
  1. 比如,如果要将开发中的分支(develop),合并到稳定分支(master),
  2. 首先切换的master分支:git checkout master。
  3. 然后执行合并操作:git merge develop。
  4. 如果有冲突,会提示你,调用git status查看冲突文件。
  5. 解决冲突,然后调用git add或git rm将解决后的文件暂存。
  6. 所有冲突解决后,git commit 提交更改。

五 忽略文件.gitignore

在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件
忽略文件的原则是:

  •  忽略操作系统自动生成的文件,比如缩略图等;
  •  忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
  •  忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。
  • 不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。所有配置文件可以直接在线浏览:https://github.com/github/gitignore

 六 github

  •  从github下拉项目的方法  git clone https://XXXXXXXXX.git


七 个人配置

前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中

[user]
name = carlos
email = 1447675994@qq.com
[core]
autocrlf = false
[color]
ui = true
[alias]
co = checkout
ci = commit
br = branch
st = status
last = log -1
lg = "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

 

八 .gitignore 格式  
这个仓库要忽略的文件

  •  忽略所有 .a 结尾的文件 *.a
  •  但 lib.a 除外 !lib.a
  •  仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO /TODO
  •  忽略 build/ 目录下的所有文件 build/
  • 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt doc/*.txt
.project
.pydevproject
.settings/
*.ncb
*.suo
*.user
.cproject
*.o

 

posted @ 2016-07-21 23:41  xyecho  阅读(484)  评论(0编辑  收藏  举报