mirror of
				https://github.com/actions/checkout.git
				synced 2025-10-29 05:40:31 +00:00 
			
		
		
		
	add more scenarios (#112)
This commit is contained in:
		
							
								
								
									
										113
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										113
									
								
								README.md
									
									
									
									
									
								
							| @@ -73,26 +73,84 @@ Refer [here](https://github.com/actions/checkout/blob/v1/README.md) for previous | |||||||
| ``` | ``` | ||||||
| <!-- end usage --> | <!-- end usage --> | ||||||
|  |  | ||||||
|  | # Scenarios | ||||||
|  |  | ||||||
|  | - [Checkout a different branch](#Checkout-a-different-branch) | ||||||
|  | - [Checkout HEAD^](#Checkout-HEAD) | ||||||
|  | - [Checkout multiple repos (side by side)](#Checkout-multiple-repos-side-by-side) | ||||||
|  | - [Checkout multiple repos (nested)](#Checkout-multiple-repos-nested) | ||||||
|  | - [Checkout multiple repos (private)](#Checkout-multiple-repos-private) | ||||||
|  | - [Checkout pull request HEAD commit instead of merge commit](#Checkout-pull-request-HEAD-commit-instead-of-merge-commit) | ||||||
|  | - [Checkout pull request on closed event](#Checkout-pull-request-on-closed-event) | ||||||
|  | - [Checkout submodules](#Checkout-submodules) | ||||||
|  | - [Fetch all tags](#Fetch-all-tags) | ||||||
|  | - [Fetch all branches](#Fetch-all-branches) | ||||||
|  |  | ||||||
| ## Checkout a different branch | ## Checkout a different branch | ||||||
|  |  | ||||||
| ```yaml | ```yaml | ||||||
| - uses: actions/checkout@v2 | - uses: actions/checkout@v2 | ||||||
|   with: |   with: | ||||||
|     ref: some-branch |     ref: my-branch | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| ## Checkout a different, private repository | ## Checkout HEAD^ | ||||||
|  |  | ||||||
| ```yaml | ```yaml | ||||||
| - uses: actions/checkout@v2 | - uses: actions/checkout@v2 | ||||||
|   with: |   with: | ||||||
|     repository: myAccount/myRepository |     fetch-depth: 2 | ||||||
|     ref: refs/heads/master | - run: git checkout HEAD^ | ||||||
|     token: ${{ secrets.GitHub_PAT }} # `GitHub_PAT` is a secret that contains your PAT |  | ||||||
| ``` | ``` | ||||||
| > - `${{ github.token }}` is scoped to the current repository, so if you want to checkout another repository that is private you will need to provide your own [PAT](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line). |  | ||||||
|  |  | ||||||
| ## Checkout the HEAD commit of a PR, rather than the merge commit | ## Checkout multiple repos (side by side) | ||||||
|  |  | ||||||
|  | ```yaml | ||||||
|  | - name: Checkout | ||||||
|  |   uses: actions/checkout@v2 | ||||||
|  |   with: | ||||||
|  |     path: main | ||||||
|  |  | ||||||
|  | - name: Checkout tools repo | ||||||
|  |   uses: actions/checkout@v2 | ||||||
|  |   with: | ||||||
|  |     repository: my-org/my-tools | ||||||
|  |     path: my-tools | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ## Checkout multiple repos (nested) | ||||||
|  |  | ||||||
|  | ```yaml | ||||||
|  | - name: Checkout | ||||||
|  |   uses: actions/checkout@v2 | ||||||
|  |  | ||||||
|  | - name: Checkout tools repo | ||||||
|  |   uses: actions/checkout@v2 | ||||||
|  |   with: | ||||||
|  |     repository: my-org/my-tools | ||||||
|  |     path: my-tools | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ## Checkout multiple repos (private) | ||||||
|  |  | ||||||
|  | ```yaml | ||||||
|  | - name: Checkout | ||||||
|  |   uses: actions/checkout@v2 | ||||||
|  |   with: | ||||||
|  |     path: main | ||||||
|  |  | ||||||
|  | - name: Checkout private tools | ||||||
|  |   uses: actions/checkout@v2 | ||||||
|  |   with: | ||||||
|  |     repository: my-org/my-private-tools | ||||||
|  |     token: ${{ secrets.GitHub_PAT }} # `GitHub_PAT` is a secret that contains your PAT | ||||||
|  |     path: my-tools | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | > - `${{ github.token }}` is scoped to the current repository, so if you want to checkout a different repository that is private you will need to provide your own [PAT](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line). | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ## Checkout pull request HEAD commit instead of merge commit | ||||||
|  |  | ||||||
| ```yaml | ```yaml | ||||||
| - uses: actions/checkout@v2 | - uses: actions/checkout@v2 | ||||||
| @@ -100,6 +158,47 @@ Refer [here](https://github.com/actions/checkout/blob/v1/README.md) for previous | |||||||
|     ref: ${{ github.event.pull_request.head.sha }} |     ref: ${{ github.event.pull_request.head.sha }} | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
|  | ## Checkout pull request on closed event | ||||||
|  |  | ||||||
|  | ```yaml | ||||||
|  | on: | ||||||
|  |   pull_request: | ||||||
|  |     branches: [master] | ||||||
|  |     types: [opened, synchronize, closed] | ||||||
|  | jobs: | ||||||
|  |   build: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - uses: actions/checkout@v2 | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ## Checkout submodules | ||||||
|  |  | ||||||
|  | ```yaml | ||||||
|  | - uses: actions/checkout@v2 | ||||||
|  | - name: Checkout submodules | ||||||
|  |   shell: bash | ||||||
|  |   run: | | ||||||
|  |     auth_header="$(git config --local --get http.https://github.com/.extraheader)" | ||||||
|  |     git submodule sync --recursive | ||||||
|  |     git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1 | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ## Fetch all tags | ||||||
|  |  | ||||||
|  | ```yaml | ||||||
|  | - uses: actions/checkout@v2 | ||||||
|  | - run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ## Fetch all branches | ||||||
|  |  | ||||||
|  | ```yaml | ||||||
|  | - uses: actions/checkout@v2 | ||||||
|  | - run: | | ||||||
|  |     git fetch --no-tags --prune --depth=1 origin +refs/heads/*:refs/remotes/origin/* | ||||||
|  | ``` | ||||||
|  |  | ||||||
| # License | # License | ||||||
|  |  | ||||||
| The scripts and documentation in this project are released under the [MIT License](LICENSE) | The scripts and documentation in this project are released under the [MIT License](LICENSE) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 eric sciple
					eric sciple