最近遇到了sourceTree无法clone代码的问题,觉得一直用可视化软件不是太好,没法更接近事物的本质,所以决定用命令行。
首先是设置账户名和邮箱:
git config --global user.name "oyl"
git config --global user.email "email.com"
创建git目录:
创建目录的命令与linux shell一致,在目录下执行以下代码即可将目录转化为git目录:
git init
git目录下面会生成一个隐藏的.git文件夹,表明该目录已成为git目录
想要将远程git仓库与本地git仓库进行关联还需要生成ssh key
cd ~/.ssh
进入.ssh文件夹,查看ssh key密钥,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人
如果文件夹中没有密钥,就需要生成密钥
ssh-keygen -t rsa –C "email.com"
这条命令会创建ssh密钥,然后将id_rsa.pub中的内容添加到github中,就完成了远程仓库对本地仓库的认证
git clone ssh_link
这条命令会将ssh链接对应的代码克隆到本地git仓库中
到这一步就可以直接用idea打开工程了,代码的提交和拉取也可以直接用idea完成
git branch branchname
这条命令用来创建名为branchname的开发分支,也可以直接在github或gitlab网页上进行分支创建
git checkout branchname
用来进行分支之间的切换
git checkout -b branchname
这条命令可以同时完成上述两个操作,创建并切换到该分支
git branch
可以查看所有分支,绿色的表示当前分支
git branch -d branchname
用于删除分支
git commit -m "loginfo"
用于将修改提交到本地仓库,loginfo中最好描述一下本次修改的内容,这是一个很好的习惯,方便以后进行代码回退
git status
查看当前仓库状态,主要查看当前是否有文件修改之后未提交,这是切换分支前必须要进行的步骤
git diff filename
查看某个文件有哪些修改未提交,提交之前用这个命令进行检查也是很好的习惯
git merge branchname
用于将指定分支合并到当前分支
git log
可以查看提交日志,这里就可以看到提交时写注释的好处
git log --pretty=oneline
将每个日志信息用一行显示,这样看起来更加清楚明了
git reset –hard HEAD^
如果想放弃当前修改可以使用这个命令回退到上一个版本,如果想回退到上上个版本可以将HEAD^改为HEAD^^,如果想进行回退100个版本这种骚操作可以换成HEAD~100
git checkout -- filename
如果不想进行版本回退,可以使用这个命令放弃对改文件的修改
如果远程仓库没有代码,想将本地代码推送到远程仓库中,需要先在本地仓库中添加远程仓库的认证
git remote add origin git_http/ssh_link
然后将本地代码推送到远程仓库中
git push -u origin branchname
第一次推送代码需要添加-u参数,可以将远程仓库中的代码与本地仓库中的代码关联起来
以后的推送中就不用加这个参数了
生产环境下提交代码时,一定要先查看分支是否正确,然后commit提交修改到本地,再fetch与远端仓库进行比较,再merge,最后确定没问题之后push,切忌直接push