Git常见操作收藏

1. 关于怎么创建一个主分支以外的分支,并且提交的代码也放在一个远程相同名字的分支?

//在本地创建一个新的分支
git branch dikang_branch 
git branch -a //查看本地和远程的所有分支,remote分支会用红色标记
git push origin dikang_branch //将本地分支推送到远程,如果没有对应的远程分支就新建
git push --set-upstream origin dikang_branch 
//本地新建一个分支后,必须要做远程分支关联。如果没有关联,git会在下面的操作中提示你显示的添加关联。关联目的是如果在本地分支下操作: git pull, git push ,不需要指定在命令行指定远程的分支
接下来你的任何操作git push都会push到dikang_branch

2. 删除一个远程分支使用
git push origin -- delete <branchName>或者git push origin :<branchName>(推送一个空分支到远程分支,其实就相当于删除远程分支:)

3. 查看origin远程分支的详细信息
git remote show origin

4. 查看远程分支以及分支下最新的提交
git branch -av

5. 查看端口并且解除占用

netstat -tunpl 
kill -9 (pid)   

6. 怎么在本地也克隆一个远程的git项目:
+ 打开git bashmkdir xxx && cd xxx

git init
git config --global user.name 'Andyliwr'
git config --gloabl user.email '[email protected]'
git remote add -f -t master -m master origin https://github.com/Andyliwr/blog.git
git merge origin

7. 克隆一个远程项目的时候如果发生权限错误怎办?


解决方案
+ 首先看本地有没有ssh key(一般在/c/Users/Andyliwr/.ssh/id_rsa.pub中)
+ 如果没有的话使用 ssh-keygen -t rsa -C "[email protected]"创建一个
+ 然后用编辑器打开/c/Users/Andyliwr/.ssh/id_rsa.pub,复制里面的内容到git stash或者github网站把ssh key添加进去。

8. 怎么利用git stash快速保存已经修改的内容,在处理完其他的事情再还原回来。

# ... hack hack hack ...
$ git stash
$ edit emergency fix
$ git commit -a -m "Fix in a hurry"
$ git stash pop //或者git stash list查看所有stash,然后git stash apply <stash name>指定使用哪个stash
# ... continue hacking ...

9. 如果你你正在修改代码,但是现在有个很重要的更新你需要pull,为了避免冲突你可以使用:

git stash save 'save-message'
$ git pull
$ git stash pop

10.今天git又前进了一大步:
+ 图形化查看提交记录
git log --graph --oneline --decorate
执行git config --global alias.lol "log --pretty=oneline --abbrev-commit --graph --decorate能让你以后只需要执行git lol就可以树形查看提交记录
+ 已经add但是未提交,怎么查看修改的代码
git diff --cached
+ 比git diff更为强大的git show
git show可以查看某次的代码修改及时已经提交了。git show HEAD^查看最近一次修改的代码,git show HEAD^^查看最近两次修改的代码

11. 在github.com上 建立了一个小项目,可是在每次push 的时候,都要输入用户名和密码,很是麻烦
原因是使用了https方式 push在terminer里边 输入 git remote -v,可以看到形如一下的返回结果

origin https://github.com/yuquan0821/demo.git (fetch)
origin https://github.com/yuquan0821/demo.git (push)

下面把它换成ssh方式的。

git remote rm origin
git remote add origin git@github.com:yuquan0821/demo.git
git push origin 

12. 怎么回退本地和远程的提交

git reset --hard commit_id(可用 git log –oneline 查看) ###本地代码回退
git reset --hard HEAD^ //回退一次提交
git push origin HEAD --force ###远程提交回退

14. git重命名分支
git branch -m devel develop

15.Refspec matches more than one
当你push分支的时候出现这样的错误:

$ git push origin master
error: src refspec master matches more than one.
error: failed to push some refs to 'ssh://user@host/srv/git/repo

这是因为当前git项目存在和你当前分支名一样的tag版本,如果不必要删掉就好了。

$ git tag
master
tag1
tag2
tag3
tag4
tag -d master
发布了59 篇原创文章 · 获赞 80 · 访问量 36万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章