Git常用操作命令

参考文档 Pro Git Book

                git 中文教程

简单操作:

###############################################
基本操作
###############################################

git init 		把这个目录变成Git可以管理的仓库
git add readme.txt 	把文件添加到仓库
git commit -m "wrote a readme file" 把文件提交到仓库

git commit -a -m "message"  但是对于新建的文件 还是需要首先使用 git add添加到缓存区中

git status  查看工作区或暂存区的状态   nothing to commit, working tree clean  

git diff readme.txt  在修改文件后并没有add操作,查看暂存区和工作区的difference
git log --graph --pretty=oneline --abbrev-commit  打印log一页展示
git reflog 显示log,<commit id>会简写
git reset --hard HEAD^   回退上一个版本  上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
git reset --hard <commit id>  回退到指定版本  commit id 可以通过log查看 ,版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。
cat readme.txt  查看文本内容


git checkout -- readme.txt 把readme.txt文件在工作区的修改全部撤销 (可以理解为还原为前一次commit或者add) 

	命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
	一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
	一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

git reset HEAD readme.txt 把暂存区的修改撤销掉,重新放回工作区  (还原到add之前,在使用 git checkout命令,回退到修改前的状态)

git rm test.txt  git commit -m "remove test.txt"   删除文件并从版本库中删除 (rm 后一定要commit)
git rm -r 文件夹  删除文件夹

###############################################
远程仓库
###############################################

ssh-keygen -t rsa -C "youremail@example.com"   生成本地秘钥 ,youremail@example.com是github账号
	C:\Users\admin\.ssh这个路径下会生成两个文件:id_rsa和id_rsa.pub , id_rsa.pub为公钥

git remote add origin git@github.com:zhangli0116/myrepository.git 给远程仓库的地址添加别名
								 远程库的别名就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库
ssh git@github.com 测试连接

ssh-add ~/.ssh/id_rsa   作用未知?

git remote remove origin  删除远程仓库别名origin

git remote -v 查看详细远程库信息

git pull --rebase origin master  同步远程仓库和本地仓库,把远程仓库文件同步到本地

git push -u origin master  实际上是把当前分支推送到远程仓库origin master 分支
			   由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

git push origin master  普通推送

git clone  <remote ssh url> 远程仓库克隆到本地(本地不需要进行初始化 git init)

git pull gitee master --allow-unrelated-histories 把远程仓库内容拉取到本地仓库并合并(如果冲突需要解决冲突,再提交)

git branch --set-upstream-to=origin/dev dev    将本地dev分支与远程仓库dev分支进行关联 

git fetch <remote name> <branch name>  把远程库的内容抓取到本地
git merge <remote name>/<remote branch> 把远程库分支的内容与当前分支合并

git pull = git fetch + git merge

git checkout -b dev origin/dev  在本地建立分支dev 并和远程仓库origin/dev分支关联 (提前保证远程仓库中存在分支dev)

###############################################
分支管理
###############################################

git checkout -b dev  创建分支dev并切换到分支dev
git branch dev  创建分支dev
git checkout dev 切换
git branch  查看本地分支  分支前带* 表示当前正在使用的分支
gti branch -a  查看所有分支(如果和远程分支建立联系,包括远程库的分支)
git merge dev  把dev合并到当前master分支
git branch -d dev 合并后删除分支
git branch -D dev 没有合并,强行删除分支

现在,master分支和feature1分支各自都分别有新的提交,变成了这样

git merge --no-ff -m "merge with no-ff" dev

git stash 当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash apply  恢复stach内容   git stash apply命令时可以通过名字指定使用哪个stash,默认使用最近的stash(即stash@{0})
git stash drop   删除stach内容  
git stash pop 恢复并删除stash内容
git stash list

git checkout -b dev origin/dev  在本地建立分支dev 并和远程仓库origin/dev分支关联 (提前保证远程仓库中存在分支dev)

**************向远程仓库分支push时,一定要保证建立了联系**************




































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值