git 常用命令与使用场情
来源:互联网 发布:蚁群算法核心问题 编辑:程序博客网 时间:2024/06/05 17:31
git init
把当前目录变成Git可以管理的仓库。
git add <file>...
添加文件到本地仓库。(git add -A
把所有文件添加到仓库)
git commit -m "add a file"
把文件提交到仓库,以及对应的说明。
git commit -a
相当于git add -A, git commit -m
, 打开一个文档,输入说明。
git status
查看当前工作平台的状态。
git diff readme.txt diff --git a/readme.txt b/readme.txtindex 46d49bf..9247db6 100644--- a/readme.txt+++ b/readme.txt@@ -1,2 +1,2 @@-Git is a version control system.+Git is a distributed version control system. Git is free software.
查看文件的修改
git log --graph --pretty=oneline --abbrev-commitcommit a80c8f866cb32b4e0352b82b59dbb836651350afAuthor: xxf <xxf@xxf.local>Date: Thu Apr 14 22:25:30 2016 +0800 some practicecommit e2bc6c25ef14e4357a66286b4dddedde8f70904eAuthor: xxf <xxf@xxf.local>Date: Thu Apr 7 00:05:03 2016 +0800 some practice code
查看版本库的状态
git reset --hard HEAD^git reset --hard e2bc6c25
版本回退。
- HEAD表示当前版本
- 上一个版本是HEAD^
- 上上一个版本是HEAD^^
- 往上100个版本,写成HEAD~100。
git refloga80c8f8 HEAD@{0}: commit: some practicee2bc6c2 HEAD@{1}: commit: some practice code95aebf6 HEAD@{2}: merge xxf: Fast-forward
查看命令历史。
使用场景:
- 当前所在版本为a
- 回退了到了前一个版本b
- 然后想再到版本a,用git log已经看不到a版本的信息了,只能看到b以前的。
- 用git reflog可以看到之前用过的命令,前面有commit id。
- 再用git reset –hard 即可。
git checkout -- <file>
把文件在工作区的修改全部撤销。这里有两种情况:
- file自修改后还没有被放到暂存区,撤销修改就回到和版本库一模一样的状态;
- file已经添加到暂存区后,又作了修改,撤销修改就回到添加到暂存区后的状态。
就是让这个文件回到最近一次git commit或git add时的状态。
使用场景:
在文件被误删之后,用此命令也可以恢复。
git reset HEAD readme.txt
把暂存区的修改撤销掉(unstage),重新放回工作区。
使用场景:
git add <file>,
- 此时还没有commit,
- 使用以上命令,就会让file变为还没有add的状态。
git rm test.txt
删除这个文件。记得commit
ssh-keygen -t rsa -C "youremail@example.com"
.ssh
目录里面有id_rsa
和id_rsa.pub
两个文件,是SSH Key的秘钥对,id_rsa
是私钥,id_rsa.pub
是公钥。
把id_rsa.pub
的放在github中,可以和github建立连接。
git remote add origin git@github.com:michaelliao/learngit.git
添加远程库
git push -u origin master
把本地仓库的内容推送到远程。
第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来。
git clone git@github.com:michaelliao/gitskills.git
克隆远程仓库到本地。
git checkout -b devgit branch devgit checkout dev
创建并切换分支。
git branch
查看当前分支。
git merge dev
合并分支。
git branch -d dev
删除分支。
git merge --no-ff -m "merge with no-ff" dev
合并dev分支,–no-ff参数表示禁用Fast forward
Fast forward
合并就看不出来曾经做过合并。
git stashgit stash listgit stash apply stash@{0}git stash pop
使用场景:
- 当前工作到一半,但内容还不能提交。
- 用git stash把内容放在list中。
- 然后做新的修改,完成后提交。
- 此时,要从list取出之前的做到一半的工作。
- apply不会从list中删除,pop会删除。
git branch -D <name>
删除一个没有被合并过的分支。
git remote -v
查看远程库的信息。
git branch --set-upstream dev origin/dev
指定本地dev分支与远程origin/dev分支的链接。
多人协作场景:
1. 首先,可以试图用git push origin branch-name推送自己的修改;
2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
3. 如果合并有冲突,则解决冲突,并在本地提交;
4. 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
5. 如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch –set-upstream branch-name origin/branch-name。
git tag <tag name>
git tag -a v0.1 -m "version 0.1 released" 3628164
打标签,-a指定标签名,-m指定说明文字
git tag查看所有标签
git show v0.9
查看标签信息
git tag -d v0.1
删除标签
git push origin :refs/tags/v0.9
删除已经提交的tag,要先删除本地的,再删除远程的。
git rebase <branch>
合并分支,将本地的commit放在origin后面。
在rebase过程中会有conflicts,解决后用git add <file>
然后git rebase --continue
继续rebase。
在这个过程中随时可以停止。 git rebase --abort
会将状态恢复到rebase之前。
git rebase --skip
git将单个文件恢复到历史版本:
1 git reset commit_id 文件路径
2 git checkout -- 文件路径
- git 常用命令与使用场情
- git flow 常用命令 与 使用心得
- Git与SVN常用命令与管理工具的使用
- svn与git常用命令
- Git 基本原理与常用命令
- Git简介与常用命令
- git常用命令与小结
- Git与GitHub常用命令
- Git与GitHub常用命令
- Git常用命令与常识
- Git基本知识与常用命令
- Git使用-常用命令
- git使用及常用命令
- git 常用命令使用
- git常用命令使用
- git 常用命令使用
- Git 常用命令使用
- git常用命令的使用
- 35_ListView自动刷新滚动
- 百思不得姐之自定义cell(八)
- 36_排列组合案例分析
- Slim+NotORM 简易安装
- Mac下配置django+mysql失败
- git 常用命令与使用场情
- libevent 安装
- 毕业季,我们一定要在路上!
- win10默认系统字体更改
- eclipse cdt include路径 和 库设置
- MyEclipse10激活方法
- 试图加载格式不正确的程序
- Linux各发行版本及其软件包管理方法
- static 修饰