博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git 常用命令 -- 菜鸟的笔记
阅读量:6607 次
发布时间:2019-06-24

本文共 3280 字,大约阅读时间需要 10 分钟。

hot3.png

git操作的常用命令,不是很全面,但是常用,个人开发笔记。

 

---------------------------------------------------------------------------------------------------

---------------------------------------分支操作-----------------------------------------------

1.察看项目的分支情况

#进入项目目录cd REPOSITORIES/git branch# 注意前面的*号表示当前处于那个分支查看远程分支: git branch -r

2.创建新的分支

git branch newbranch#创建并进入新的分支git checkout -b newbranch

3.切换到分支

分支切换的时候要注意一个问题:在切换过程中,上一个分支的修改会带到新的分支去。也就是说在分支切换的时候会带上修改。如果要避免这样情况,当然就是在切换之前把修改提交(commit)了。

git checkout newbranch#取消对file的修改git checkout file

4.察看文件修改情况

git status

            显示如下的代码:

# On branch new# Changes not staged for commit:#   (use "git add/rm 
..." to update what will be committed)# (use "git checkout --
..." to discard changes in working directory)## deleted: build.xml#no changes added to commit (use "git add" and/or "git commit -a")

可以看到,他说删除了build.xml文件。现在是处于new分支

5.提交修改

#这样是提交到当前分支去的git commit -am "commit message"

6.删除分支

git -d branch

 

-------------------------------------------------------------------------------------------------------

----------------------------------------------------合并操作--------------------------------------

git merge  --type  branch#其中的type可以是下面4种
  • Straight merge 預設的合併模式,會有全部的被合併的 branch commits 記錄加上一個 merge-commit,看線圖會有兩條 Parents 線,並保留所有 commit log。
  • Squash commit 壓縮成只有一個 merge-commit,不會有被合併的 log。SVN 的 merge 即是如此。
  • cherry-pick 只合併指定的 commit
  • rebase 變更 branch 的分支點:找到要合併的兩個 branch 的共同的祖先,然後先只用要被 merge 的 branch 來 commit 一遍,然後再用目前 branch 再 commit 上去。這方式僅適合還沒分享給別人的 local branch,因為等於砍掉重練 commit log。

 合并当然要伴随这各种各样的问题拉,其中最重要的一个问题就是冲突的问题拉。冲突过后,会提示

Automatic merge failed; fix conflicts and then commit the result.

冲突的文件会更改为下面的样子,剩下的时间就得看自己去手动解决这里的冲突了。

<<<<<<< HEAD#这里是现在的代码------------------------- =======#这里是拉过来冲突的代码++++++++++++++++++++++++>>>>>>> master

 

-------------------------------提交-------------------------------------------

-------------------------------------------------------------------------------

git在提交的时候,有时候可能想当前的所有修改,使用命令

#该命令放弃当前 git status 显示的所有的修改git reset#可以让版本回退到commit编号去git reset --hard [commit编号]

如果只放弃某一个文件的修改,可以使用checkout命令

git checkout file#但是对于增加的文件,使用这个命令来放弃修改会有问题,它会提示说找不到文件,因为修改之前是没有该文件的。

git在提交的时候,会忽略一些类型的文件,这写配置在 项目的.gitignore 文件中,可以使用vi编辑这写内容

vi .gitignore

 

-----------------------------------------远程操作--------------------------------------

-----------------------------------------------------------------------------------------

检出仓库:$ git clone git://github.com/jquery/jquery.git查看远程仓库:$ git remote -v添加远程仓库:$ git remote add [name] [url]删除远程仓库:$ git remote rm [name]修改远程仓库:$ git remote set-url --push[name][newUrl]拉取远程仓库:$ git pull [remoteName] [localBranchName]推送远程仓库:$ git push [remoteName] [localBranchName]

 

 

-----------------------------------比较操作---------------------------------------

在使用Git的过程中,我们有时候需要去对比代码的不同的地方。这时可以使用 diff 这的命令

# 对比commit_id1和commit_id2的不同地方,并用不同颜色区别出来, 注意 commit_id1 一定要比 commit_id2要早提交git diff --color commit_id1 commit_id2

000

 

--------------保存当前修改状态-------------------------

有时候有这样的情况,当前编辑了一些文件,这时需要做reset、checkout等其他操作,这时又不想把编辑丢弃,提交了也不完整。这时需要git一个非常人性化的一个命令:git stash ,来保存当前的状态。

#保存当前编辑git stash#恢复编辑git stash apply

git pull 远程分支

#checkout的同时在本地同步一个远程origin上的serverbranch分支git checkout --track origin/serverbranch
 

--

转载于:https://my.oschina.net/u/559701/blog/70010

你可能感兴趣的文章
自然语言处理NLP(二)
查看>>
HTTP中GET与POST的区别
查看>>
一、JVM内存之GC
查看>>
MySQL备份与恢复
查看>>
I/O模型
查看>>
ES6中的模板字符串和新XSS Payload
查看>>
Linux(RadHat)基础学习—系统存储设备与系统分区
查看>>
SpringCloud多模块记一次maven打包报错
查看>>
123.文件上传 (1版本)
查看>>
区块链教程Fabric1.0源代码分析Peer peer chaincode命令及子命令实现
查看>>
运行Spotify Music Converter mac时出现错误1001,1002,1004?
查看>>
学习嵌入式有前途吗?
查看>>
手动刷新断开连接的邮箱
查看>>
编程语言的作用及与操作系统和硬件的关系
查看>>
merge.xml
查看>>
python实现简单的find命令
查看>>
FOSCommentBundle功能包:使用Sundown PECL扩展
查看>>
打印机和传真(Print Spooler)不可用的解决办法
查看>>
sublime text 3 常用快捷键
查看>>
部署tomcat
查看>>