mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-31 05:40:42 +00:00 
			
		
		
		
	| @@ -8,23 +8,62 @@ Official releases are built in Docker containers.  Details are [here](../../buil | |||||||
|  |  | ||||||
| Kubernetes is written in [Go](http://golang.org) programming language. If you haven't set up Go development environment, please follow [this instruction](http://golang.org/doc/code.html) to install go tool and set up GOPATH. Ensure your version of Go is at least 1.3. | Kubernetes is written in [Go](http://golang.org) programming language. If you haven't set up Go development environment, please follow [this instruction](http://golang.org/doc/code.html) to install go tool and set up GOPATH. Ensure your version of Go is at least 1.3. | ||||||
|  |  | ||||||
| ## Clone kubernetes into GOPATH | ## Git Setup | ||||||
|  |  | ||||||
| We highly recommend to put kubernetes' code into your GOPATH. For example, the following commands will download kubernetes' code under the current user's GOPATH (Assuming there's only one directory in GOPATH.): | Below, we outline one of the more common git workflows that core developers use. Other git workflows are also valid. | ||||||
|  |  | ||||||
|  | ### Visual overview | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ### Fork the main repository | ||||||
|  |  | ||||||
|  | 1. Go to https://github.com/GoogleCloudPlatform/kubernetes | ||||||
|  | 2. Click the "Fork" button (at the top right) | ||||||
|  |  | ||||||
|  | ### Clone your fork | ||||||
|  |  | ||||||
|  | The commands below require that you have $GOPATH set ([$GOPATH docs](https://golang.org/doc/code.html#GOPATH)). We highly recommend you put kubernetes' code into your GOPATH. Note: the commands below will not work if there is more than one directory in your `$GOPATH`. | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
| $ echo $GOPATH |  | ||||||
| /home/user/goproj |  | ||||||
| $ mkdir -p $GOPATH/src/github.com/GoogleCloudPlatform/ | $ mkdir -p $GOPATH/src/github.com/GoogleCloudPlatform/ | ||||||
| $ cd $GOPATH/src/github.com/GoogleCloudPlatform/ | $ cd $GOPATH/src/github.com/GoogleCloudPlatform/ | ||||||
| $ git clone https://github.com/GoogleCloudPlatform/kubernetes.git | # Replace "$YOUR_GITHUB_USERNAME" below with your github username | ||||||
|  | $ git clone https://github.com/$YOUR_GITHUB_USERNAME/kubernetes.git | ||||||
|  | $ cd kubernetes | ||||||
|  | $ git remote add upstream 'https://github.com/GoogleCloudPlatform/kubernetes.git' | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| The commands above will not work if there are more than one directory in ``$GOPATH``. | ### Create a branch and make changes | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | $ git checkout -b myfeature | ||||||
|  | # Make your code changes | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ### Keeping your development fork in sync | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | $ git fetch upstream | ||||||
|  | $ git rebase upstream/master | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | Note: If you have write access to the main repository at github.com/GoogleCloudPlatform/kubernetes, you should modify your git configuration so that you can't accidentally push to upstream: | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | git remote set-url --push upstream no_push | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ### Commiting changes to your fork | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | $ git commit | ||||||
|  | $ git push -f origin myfeature | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ### Creating a pull request | ||||||
|  | 1. Visit http://github.com/$YOUR_GITHUB_USERNAME/kubernetes | ||||||
|  | 2. Click the "Compare and pull request" button next to your "myfeature" branch. | ||||||
|  |  | ||||||
| If you plan to do development, read about the |  | ||||||
| [Kubernetes Github Flow](https://docs.google.com/presentation/d/1HVxKSnvlc2WJJq8b9KCYtact5ZRrzDzkWgKEfm0QO_o/pub?start=false&loop=false&delayms=3000), |  | ||||||
| and then clone your own fork of Kubernetes as described there. |  | ||||||
|  |  | ||||||
| ## godep and dependency management | ## godep and dependency management | ||||||
|  |  | ||||||
| @@ -240,28 +279,6 @@ See [conformance-test.sh](../../hack/conformance-test.sh). | |||||||
| ## Testing out flaky tests | ## Testing out flaky tests | ||||||
| [Instructions here](flaky-tests.md) | [Instructions here](flaky-tests.md) | ||||||
|  |  | ||||||
| ## Keeping your development fork in sync |  | ||||||
|  |  | ||||||
| One time after cloning your forked repo: |  | ||||||
|  |  | ||||||
| ``` |  | ||||||
| git remote add upstream https://github.com/GoogleCloudPlatform/kubernetes.git |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| Then each time you want to sync to upstream: |  | ||||||
|  |  | ||||||
| ``` |  | ||||||
| git fetch upstream |  | ||||||
| git rebase upstream/master |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| If you have write access to the main repository, you should modify your git configuration so that |  | ||||||
| you can't accidentally push to upstream: |  | ||||||
|  |  | ||||||
| ``` |  | ||||||
| git remote set-url --push upstream no_push |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| ## Regenerating the CLI documentation | ## Regenerating the CLI documentation | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								docs/devel/git_workflow.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								docs/devel/git_workflow.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 88 KiB | 
		Reference in New Issue
	
	Block a user