How does a node get information from other nodes? I think a node sometimes needs to get a information from other nodes.
e.g.


get set of UTXO.  
get main(longest) chain.


I have two questions.  


How does a node tell other nodes these requests?
Like in github, are there commands like 'pull requests'?  
Where does a node get information from?
I believe blockchain is decenterlized and all information is in the hands of all nodes.There must not be centerlized database.
Then, how does a node decide who is reliable to get information from?  


I wish you could understand my poor English...
get set of UTXO.


Note: nodes don't download the UTXO set directly, they download the entire blockchain and build their own UTXO set as they verify the blockchain.


  How does a node tell other nodes these requests?
  Like git, are there commands like 'pull requests'?


Nodes communicate with each other directly via a P2P protocol, sending different types of messages to each other to retrieve different types of information. You can take a look here for the specifics of each message, https://bitcoin.org/en/developer-reference


  Where does a node get information from?
  I believe blockchain is decenterlized and all information is in the hands of all nodes.There must not be centerlized database.
  Then, how does a node decide who is reliable to get information from?


Nodes will ask multiple neighbour nodes for information at once, rather than just trusting a single other node. It can then use the longest chain from all its neighbours, so as long as it connected to just one honest node it will be able to download the blockchain. This is very likely because the nodes it connects to are randomly selected from a set given to it by a DNS server