您的位置:首页 > 其它

Git常见操作收藏

2016-07-26 11:19 316 查看
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 bash
mkdir xxx && cd xxx


git init
git config --global user.name 'Andyliwr'
git config --gloabl user.email '121960425@qq.com'
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 "lidikang@idwzx.com"
创建一个

+ 然后用编辑器打开
/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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  git branch