git 经常使用命令 -- 菜鸟的笔记


git操做的经常使用命令,不是很全面,可是经常使用,我的开发笔记。 jquery

 

--------------------------------------------------------------------------------------------------- git

---------------------------------------分支操做----------------------------------------------- github

1.察看项目的分支状况 shell

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

2.建立新的分支 app

git branch newbranch

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

3.切换到分支 ui

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

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

4.察看文件修改状况 spa

git status

            显示以下的代码: code

# On branch new
# 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:    build.xml
#
no changes added to commit (use "git add" and/or "git commit -a")

能够看到,他说删除了build.xml文件。如今是处于new分支 server

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
 

--

相关文章
相关标签/搜索