Git 小结

一直在使用git,碰到不清楚的,直接拿sourceTree可视化的提交,拉取,解决冲突等,对git命令一直没时间综合看下,即便现在,也只能看个大概。

1)Git简介 略

  • Git与SVN 略

2)Git基本命令

  • git push 与 git pull

git push 与git pull 命令用于本地与远程仓库的数据同步
基本命令都是:git push/git pull <远程主机> <来源地>:<目的地>
例如:git push origin dev:master / git pull origin master:dev
此时有分支追踪的概念: git branch --set-upstream master origin/next
存在省略写法:

git push

  1. 省略远程分支:例如 git push orgin master 表示将本地的master分支代码推送到远程master分支,如果远程没有master分支,则自动新建
  2. 省略本地分支:例如 git push orgin :master 表示推送一个空的本地分支到远程分支,与删除远程分支相似:git push orgin --delete master(慎行)
  3. 如果当前分支和远程分支之间存在追踪关系,则本地分支和远程分支都可以省略
    例如:git push origin 表示将当前分支推送到远程对应的分支
  4. 如果当前分支只追踪一个分支,则远程主机名都可以省略 例如:git push 如果希望达到这个关系,可使用git track命令 或者在推送时使用参数-u 指定一个默认主机,这样后面的操作就可以不加任何参数使用git push即可:例如:git push -u origin master

git pull

git pull 拉取远程某个分支的的更新,再与本地指定的分支合并
git pull origin <远程主机名> <远程分支> : <本地分支>

  1. 本地分支省略:表示拉取远程分支与当前分支合并 相当于:git fetch origin next-->git merge origin/next
  2. 省略本地分支和远程分支。例如:git pull origin. 此时会将当前分支与其跟踪的远程分支拉到本地,并与当前分支合并
  3. 省略本地分支和远程分支:仅当当前分支仅追踪一个分支时,才起作用

Git fetch

远程仓库有了更新,需要将这些更新拉到本地,这时就需要用到git fetch命令

git fetch <远程主机名> :master

这个命令将远程主机所有的更新均拉到本地,如果希望拉取特定分支的更新,可以指定分支名。


常见问题

########## 1). Not a valid object name: 'master'
我们在本地新建一个工程目录,并使用命令git init后,然后使用git branch发现并无master分支创建,同时git branch dev等创建先的分支时,提示 Not a valid object name: 'master'

处理办法: 出现这个问题的原因是,虽然我们创建了仓库,但是还未向master分支提交任何代码,master没有指向任何位置,所以,我们只需要新建一个文件,并git add, git commit 即可。之后一切就会正常了。

你可能感兴趣的:(Git 小结)