整理git常用命令
18 Dec 2014github已经被公认为程序员的Facebook,好处就不介绍了,如果你不想被淘汰,还是多学点吧,关于git的更详细的使用,请点击这里进行详细的学习,这里只是整理了本人可能会经常用到的命令,由于目前公司还是用SVN,所以一般都是自己在搞,难免有些命令用的不太熟练,所以整理下。
####创建远程仓库SSH
如果刚换的电脑或重新做过系统,会遇到这个问题。需要创建远程仓库的SSH,方便以后提交代码。
-
第一步:在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa 和 id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
ssh-keygen -t rsa -C "youremail@example.com"
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
-
第二步:登陆GitHub,打开“Account settings”,“SSH Keys”页面: 然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容,点“Add Key”,你就应该看到已经添加的Key。
-
第三步:在github上创建远程库,并将本地库与远程库关联。
git remote add origin git@github.com: 你的github账号名/库名 .git
-
第四步:推送到远程库中
git push -u origin master
PS: SSH警告 当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告:
The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.RSA key fingerprint is xx.xx.xx.xx.xx.Are you sure you want to continue connecting (yes/no)?
这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。
Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了:
Warning: Permanently added 'github.com' (RSA) to the list of known hosts.
这个警告只会出现一次,后面的操作就不会有任何警告了。
####一些常用命令
-
更新本地代码,从远程库中拉取最新的代码到本地。
//方法一: git pull //方法二: git fetch git merge FETCH_HEAD
-
查看记录(当前操作窗口)
git log 或 git log --pretty=oneline
-
查看所有的log记录,包括以前的
git reflog
-
版本切换回退或跳回
git reset --hard 版本提交号(git log)
-
提交后查看工作区与版本库里有哪些区别
git diff HEAD -- <filename>
以上都是commit过的(并不包括push上)。即已经提交到远程库中,然后想查看或更新等。
-
比较文件修改了那些
git diff <filename>
-
文件撤销修改,撤销当前所有修改
-
a. 如果还没有添加到缓存区,即还没有 git add
git checkout -- <filename>
-
b. 如果文件已经 git add 过了,并且add的部分是正确的不用撤销
git checkout -- <filename> // 会回到最近add 过的
-
c. 如果文件已经 git add 过了,并且add的部分不正确也要撤销
git reset HEAD <filename> git checkout -- <filename>
-
-
删除文件
git rm <filename> //从版本库删除
-
创建合并分支,删除分支
git checkout -b <branchname> git merge <branchname> //必须先checkout 到某分支,再将该分支merge到 <branchname> 分支 git branch -d <branchname> //另外 git log --graph 或 git log --graph --pretty=oneline --abbrev-commit 可以查看分支合并图
以上是 add到缓存区的,或还没有add 的。
一般常用的差不多就这些了,多用多熟悉。