Git常用命令

创建目录
$ mkdir learngit $ cd learngit $ pwd

初始化仓库
$ git init

添加到缓存
$ git add file1.txt
提交本地仓库 $ git commit -m "add 3 files."

查看仓库状态
git status 命令可以让我们时刻掌握仓库当前的状态,上面的命令告诉我们,readme.txt被修改过了,但还没有准备提交的修改。

比较不同
git diff 顾名思义就是查看difference,显示的格式正是Unix通用的diff格式,可以从上面的命令输出看到,我们在第一行添加了一个“distributed”单词。

查看日志
$ git log --pretty=oneline
$ git log
git log --graph 命令可以看到分支合并图。

回滚重置代码
首先,Git必须知道当前版本是哪个版本,在Git中,用 HEAD 表示当前版本,也就是最新的提交 3628164...882e1e0 (注意我的提交ID和你的肯定不一样),上一个版本就是 HEAD^ ,上上一个版本就是 HEAD^^ ,当然往上100个版本写100个 ^ 比较容易数不过来,所以写成 HEAD~100
$ git re set --hard HEAD^
页可以指定提交号,前几位可以辨别就好
$ git re set --hard 3628164
revert 和reset


git checkout -- file 可以丢弃工作区的修改:
$ git checkout -- readme.txt
命令 git checkout -- readme.txt 意思就是,把 readme.txt 文件在工作区的修改全部撤销,这里有两种情况:
一种是 readme.txt 自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是 readme.txt 已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次 git commit git add 时的状态。

删除文件
一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用 rm 命令删了:
$ rm test.txt
这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了, git status 命令会立刻告诉你哪些文件被删除了:
$ git status # On branch master # Changes not staged for commit: # (use "git add/rm <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # deleted: test.txt # no changes added to commit (use "git add" and / or "git commit -a" )
现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令 git rm 删掉,并且 git commit
$ git rm test.txtrm 'test.txt'$ git commit -m "remove test.txt" [master d17efd8] remove test.txt 1 file changed, 1 deletion(-) delete mode 100644 test.txt
现在,文件就从版本库中被删除了。
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
$ git checkout -- test.txt
git checkout 其实是用版本库里的版本替换工作区的版本,无论工作
本地仓库与远程关联
$ git remote add origin git @github . com: michaelliao/learngit.git
git remote rm origin 删除关联 origin可以自定义
git remote -v 查看远程仓库信息

克隆远程仓库到本地
$ git clone git @github . com: michaelliao/gitskills.git

分支
查看分支: git branch
创建分支: git branch <name>
切换分支: git checkout <name>
创建+切换分支: git checkout -b <name>
合并某分支到当前分支: git merge <name>
删除分支: git branch -d <name> 大写D表示强制删除

贮藏工作区分支
$ git stash 贮藏未commit的代码
$ git stash list 查看贮藏文件
一是用 git stash apply 恢复,但是恢复后,stash内容并不删除,你需要用 git stash drop 来删除;
另一种方式是用 git stash pop ,恢复的同时把stash内容也删了:

查看远程仓库信息
$ git remote
$ git remote -v 详细信息
$ git push origin master 远程仓库名 +分支名
git push --set-upstream origin dev 推送新分支到远程
  1. 首先,可以试图用git push origin branch-name推送自己的修改;
  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
  3. 如果合并有冲突,则解决冲突,并在本地提交;
  4. 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
如果 git pull 提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令 git branch --set-upstream branch-name origin/branch-name
这就是多人协作的工作模式,一旦熟悉了,就非常简单。
  • 查看远程库信息,使用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,如果有冲突,要先处理冲突。

Tag使用
  • 命令git tag <name>用于新建一个标签,默认为HEAD,也可以指定一个commit id;
  • git tag -a <tagname> -m "blablabla..."可以指定标签信息;
  • git tag -s <tagname> -m "blablabla..."可以用PGP签名标签;
  • 命令git tag可以查看所有标签。
  • 命令git push origin <tagname>可以推送一个本地标签;
  • 命令git push origin --tags可以推送全部未推送过的本地标签;
  • 命令git tag -d <tagname>可以删除一个本地标签;
  • 命令git push origin :refs/tags/<tagname>可以删除一个远程标签。

手写添加忽略文件
.gitignore

merger和rebase的区别

查看拉取远程分支
git checkout -b 本地分支名x origin/远程分支名x

http://zhidao.baidu.com/link?url=cuqJsL9skJJn5c556zXfP1dgCAOUK37CDXkNIw_sS0YKmvoROTI0HP7-PbKjgs6Lv4XrGleG2fjg5AaNgASlxgmt00c7rsC5gpPryKR_D_G
 
git clone只能clone远程库的master分支,无法clone所有分支,解决办法如下:
1. 找一个干净目录,假设是git_work
2. cd git_work
3. git clone  http://myrepo.xxx.com/project/.git ,这样在git_work目录下得到一个project子目录
4. cd project
5. git branch -a,列出所有分支名称如下:
remotes/origin/ dev
remotes/origin/release
6. git checkout -b  dev origin/ dev,作用是checkout远程的dev分支,在本地起名为dev分支,并切换到本地的dev分支
7. git checkout -b release origin/release,作用参见上一步解释
8. git checkout dev,切换回dev分支,并开始开发。


用git commit提交版本时没有加-m,会进入vim,如何写入提交说明然后退出

git修改远程仓库地址
1.修改命令
git remote set-url origin [url]
例如:git remote set-url origin git@git.shuiditech.com:frontend/package/sd-statistics.git
2.先删后加
git remote rm origin
git remote add origin [url]
3.直接修改config文件

git查看远程仓库地址命令:
$git remote -v

git 重置回顾

本地仓库关联远程方法 看红字
Git 全局设置:
git config --global user.name "小兮"git config --global user.email "helloworld107@163.com"
创建 git 仓库:
mkdir watercd watergit inittouch README.mdgit add README.mdgit commit -m "first commit" git remote add origin git@gitee.com:MyDreamLy/water.gitgit push -u origin master
已有项目?
cd existing_git_repo git remote add origin git@gitee.com:MyDreamLy/water.git git push -u origin master
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值